From 7209b8796077ab4e3d5a838d540351a7a1257bbd Mon Sep 17 00:00:00 2001 From: "Wanda B.K. Boyer" Date: Wed, 27 May 2026 17:53:59 -0700 Subject: [PATCH] Merged EAPS `graphLib` updates into `planarity/c/graphLib` resulting from [EAPS PR #217](https://github.com/graph-algorithms/edge-addition-planarity-suite/pull/217) and [EAPS PR #221](https://github.com/graph-algorithms/edge-addition-planarity-suite/pull/221), and made sure all functions/methods are declared and defined in the correct order in: * `cgraphLib.pxd`, * `cplanarity.pxd` (no changes to `planarity/classic/planarity.pyx` needed), * `graphLib.pxd`, * `graphLib.pyx`, * `graph.pyx` Added `gp_DynamicAddEdge()` to `cgraphLib.pxd`, surfaced in `graphLib.pxd` and wrapped in `graphLib.pyx`, then added to `Graph` in `graph.pyx`. NOTE that this is not called in the EAPS testing layer at this time, so direct validation has not yet been performed. Changed order of `g6_EndReached()` in `g6ReadIterationUtils.pyx`, since this was left out of #50 --- .../extensionSystem/graphExtensions.c | 87 +- .../extensionSystem/graphExtensions.h | 2 +- .../extensionSystem/graphExtensions.private.h | 2 +- planarity/c/graphLib/graph.c | 52 +- planarity/c/graphLib/graph.h | 47 +- .../graphK23Search_Extensions.c | 19 +- .../homeomorphSearch/graphK33Search.c | 14 +- .../graphK33Search_Extensions.c | 125 +- .../graphLib/homeomorphSearch/graphK4Search.c | 4 +- .../graphK4Search_Extensions.c | 119 +- planarity/c/graphLib/io/strOrFile.c | 14 + .../graphDrawPlanar.private.h | 2 + .../graphDrawPlanar_Extensions.c | 126 +- .../planarityRelated/graphNonplanar.c | 2 +- planarity/classic/cplanarity.pxd | 36 +- planarity/classic/planarity.c | 8 +- planarity/full/cgraphLib.pxd | 9 +- planarity/full/g6IterationUtils.c | 366 +-- planarity/full/g6IterationUtils.pyx | 6 +- planarity/full/graph.c | 2629 ++++++++++------- planarity/full/graph.pyx | 35 +- planarity/full/graphLib.c | 338 ++- planarity/full/graphLib.pxd | 9 +- planarity/full/graphLib.pyx | 21 +- 24 files changed, 2324 insertions(+), 1748 deletions(-) diff --git a/planarity/c/graphLib/extensionSystem/graphExtensions.c b/planarity/c/graphLib/extensionSystem/graphExtensions.c index 100f83e..a850c03 100644 --- a/planarity/c/graphLib/extensionSystem/graphExtensions.c +++ b/planarity/c/graphLib/extensionSystem/graphExtensions.c @@ -53,19 +53,10 @@ static int moduleIDGenerator = 0; An instance of this context structure is passed to the "context" parameter of gp_AddExtension(). - 3) Define a function capable of duplicating your context data - structure. It receives a void pointer indicating the context - to duplicate and a void pointer that can be cast to a graph - pointer indicating the graph for which the context is being - duplicated. The void pointer returned indicates the newly - allocated context structure. The pointer to this function is - passed to the "dupContext" parameter of gp_AddExtension() - - Note: It is useful to store in your context structure a pointer - to the graph that the context is extending. There are certain - function overloads you will perform that will only receive - the context, and you may need to know things about the graph, - such as the number of vertices or edges. + 3) Define a function capable of copying your context data. It receives + void pointers to destination and source contexts, and then copies the + extension-specific data from source to destination. This function's + pointer is passed to the "copyData" parameter of gp_AddExtension() 4) Define a function that can free the memory used by your context data structure. It will receive a void pointer indicating the @@ -132,7 +123,8 @@ static int moduleIDGenerator = 0; of fpReadPostprocess() and fpWritePostprocess() are needed. 7) Define internal functions for _Feature_ClearStructures(), - _Feature_CreateStructures() and _Feature_InitStructures(); + _Feature_CreateStructures(), _Feature_InitStructures(), and + _Feature_CopyStructures(); a) The _Feature_ClearStructures() should simply null out pointers to extra structures on its first invocation, but thereafter it @@ -151,6 +143,13 @@ static int moduleIDGenerator = 0; needed to initialize the custom VertexRec, VertexInfo and EdgeRec data members, if any. + d) The _Feature_CopyStructures() should invoke just the functions + needed to copy the custom VertexRec, VertexInfo and EdgeRec data + members, if any, from a source extension context to a destination + extension context. For custom EdgeRec arrays, if the destination + has more capacitiy than the source, then the implementation should + also ensure the extra EdgeRecs are initialized in the destination. + 8) Define a function gp_Detach_Feature() that invokes gp_RemoveExtension() This should be done for consistency, so that users of a feature do not attach it with gp_ExtendWith_Feature() and remove it with @@ -170,7 +169,7 @@ static int moduleIDGenerator = 0; value can be used to find and remove the extension from any graph @param context - the data storage for the extension being added The context is owned by the extension and freed with freeContext() - @param dupContext - a function capable of duplicating the context data + @param copyData - a function capable of copying the context data @param freeContext - a function capable of freeing the context data @param functions - pointer to a table of functions stored in the data context. The table of functions is an input and output parameter. @@ -190,14 +189,14 @@ static int moduleIDGenerator = 0; int gp_AddExtension(graphP theGraph, int *pModuleID, void *context, - void *(*dupContext)(void *, void *), + int (*copyData)(void *, void *), void (*freeContext)(void *), graphFunctionTableP functions) { graphExtensionP newExtension = NULL; if (theGraph == NULL || pModuleID == NULL || - context == NULL || dupContext == NULL || freeContext == NULL || + context == NULL || copyData == NULL || freeContext == NULL || functions == NULL) { return NOTOK; @@ -224,7 +223,7 @@ int gp_AddExtension(graphP theGraph, // Assign the data payload of the extension newExtension->moduleID = *pModuleID; newExtension->context = context; - newExtension->dupContext = dupContext; + newExtension->copyData = copyData; newExtension->freeContext = freeContext; newExtension->functions = functions; @@ -459,39 +458,51 @@ graphExtensionP _FindNearestOverload(graphP theGraph, graphExtensionP target, in gp_CopyExtensions() ********************************************************************/ +// This number can just be made bigger if ever needed +#define MAXNUMSUPPORTEDEXTENSIONS 32 + int gp_CopyExtensions(graphP dstGraph, graphP srcGraph) { - graphExtensionP next = NULL, newNext = NULL, newLast = NULL; + graphExtensionP dstExtension = NULL, srcExtension = NULL; + graphExtensionP srcExtensionIDMap[MAXNUMSUPPORTEDEXTENSIONS+1]; if (srcGraph == NULL || dstGraph == NULL) return NOTOK; - gp_FreeExtensions(dstGraph); + if (gp_GetN(dstGraph) != gp_GetN(srcGraph) || gp_GetN(dstGraph) == 0) + return NOTOK; - next = srcGraph->extensions; + // NULL out the pointers in the srcExtensionIDMap + memset(srcExtensionIDMap, 0, (MAXNUMSUPPORTEDEXTENSIONS+1)*sizeof(graphExtensionP)); - while (next != NULL) + // Run through the srcGraph extensions linked list and put the pointer to + // each extension in the srcExtensionIDMap at the index location indicated + // by the extension module ID. This mapping is needed because the srcGraph + // may have been extended with the extensions in a different order than the + // dstGraph, but the moduleID for each extension is the same across graphs. + srcExtension = srcGraph->extensions; + while (srcExtension != NULL) { - if ((newNext = (graphExtensionP)malloc(sizeof(graphExtensionStruct))) == NULL) - { - gp_FreeExtensions(dstGraph); + if (srcExtension->moduleID < 0 || srcExtension->moduleID > MAXNUMSUPPORTEDEXTENSIONS) return NOTOK; - } - newNext->moduleID = next->moduleID; - newNext->context = next->dupContext(next->context, dstGraph); - newNext->dupContext = next->dupContext; - newNext->freeContext = next->freeContext; - newNext->functions = next->functions; - newNext->next = NULL; + srcExtensionIDMap[srcExtension->moduleID] = srcExtension; + srcExtension = (graphExtensionP)srcExtension->next; + } - if (newLast != NULL) - newLast->next = (struct graphExtensionStruct *)newNext; - else - dstGraph->extensions = newNext; + // For each extension in the dstGraph, if the srcGraph has the same extension, + // then we invoke the extension's copyData to copy from srcGraph to dstGraph. + // If the dstGraph has an extension that the srcGraph does not have, then + // NULL is passed for the srcGraph extension, which is expected to cause + // the extension's copyData() to reset/reinitialize the dstGraph structures. + dstExtension = dstGraph->extensions; + while (dstExtension != NULL) + { + srcExtension = srcExtensionIDMap[dstExtension->moduleID]; + if (dstExtension->copyData(dstExtension->context, srcExtension ? srcExtension->context : NULL) != OK) + return NOTOK; - newLast = newNext; - next = (graphExtensionP)next->next; + dstExtension = (graphExtensionP)dstExtension->next; } return OK; diff --git a/planarity/c/graphLib/extensionSystem/graphExtensions.h b/planarity/c/graphLib/extensionSystem/graphExtensions.h index 9d09d89..c1a7334 100644 --- a/planarity/c/graphLib/extensionSystem/graphExtensions.h +++ b/planarity/c/graphLib/extensionSystem/graphExtensions.h @@ -17,7 +17,7 @@ extern "C" int gp_AddExtension(graphP theGraph, int *pModuleID, void *context, - void *(*dupContext)(void *, void *), + int (*copyData)(void *, void *), void (*freeContext)(void *), graphFunctionTableP overloadTable); diff --git a/planarity/c/graphLib/extensionSystem/graphExtensions.private.h b/planarity/c/graphLib/extensionSystem/graphExtensions.private.h index 842dc7a..025f374 100644 --- a/planarity/c/graphLib/extensionSystem/graphExtensions.private.h +++ b/planarity/c/graphLib/extensionSystem/graphExtensions.private.h @@ -18,7 +18,7 @@ extern "C" { int moduleID; void *context; - void *(*dupContext)(void *, void *); + int (*copyData)(void *, void *); void (*freeContext)(void *); graphFunctionTableP functions; diff --git a/planarity/c/graphLib/graph.c b/planarity/c/graphLib/graph.c index 614a7b5..31fba61 100644 --- a/planarity/c/graphLib/graph.c +++ b/planarity/c/graphLib/graph.c @@ -62,7 +62,7 @@ int _ClearAllVisitedFlagsOnPath(graphP theGraph, int u, int v, int w, int x); int _SetAllVisitedFlagsOnPath(graphP theGraph, int u, int v, int w, int x); int _ComputeEdgeRecordType(graphP theGraph, int a, int b, int edgeType); -int _SetEdgeType(graphP theGraph, int u, int v); +int _RestoreEdgeType(graphP theGraph, int u, int v); int _HideInternalEdges(graphP theGraph, int vertex); int _RestoreInternalEdges(graphP theGraph, int stackBottom); @@ -306,7 +306,7 @@ void _InitEdges(graphP theGraph) #ifdef USE_1BASEDARRAYS #else - for (int e = gp_BeginEdgeStorage(theGraph); e != gp_EndEdgeStorage(theGraph); ++e) + for (int e = gp_LowerBoundEdgeStorage(theGraph); e < gp_UpperBoundEdgeStorage(theGraph); ++e) gp_InitEdgeFlags(theGraph, e); #endif } @@ -1002,20 +1002,6 @@ int gp_CopyGraph(graphP dstGraph, graphP srcGraph) return NOTOK; } - // If the dstGraph has a larger edge capacity than the srcGraph - // then we report failure because the code below only gives valid - // values to edge records up to the edge capacity of the srcGraph - // It would be possible to invoke _InitEdgeRec() on the extra - // edge records in dstGraph, but we do not support this - // currently because we would need to have and currently do - // not have a way to reinitialize the edge record extensions - // (gp_CopyExtensions() only copies the content in extension - // content up to the size of data structures in srcGraph). - if (dstGraph->edgeCapacity > srcGraph->edgeCapacity) - { - return NOTOK; - } - // Copy the vertices (non-virtual only). Augmentations to vertices created // by extensions are copied below by gp_CopyExtensions() for (v = gp_LowerBoundVertices(srcGraph); v < gp_UpperBoundVertices(srcGraph); ++v) @@ -1043,6 +1029,15 @@ int gp_CopyGraph(graphP dstGraph, graphP srcGraph) for (e = gp_LowerBoundEdgeStorage(srcGraph); e < gp_UpperBoundEdgeStorage(srcGraph); e++) _gp_CopyEdgeRec(dstGraph, e, srcGraph, e); + // If the dstGraph has more edge storage than the srcGraph, then we clear the extra + // base edgeRec structures. In gp_CopyExtensions(), the various extensions' copyData() + // functions are expected to clear out any extension-specific extra edgeRec structures + if (gp_UpperBoundEdgeStorage(dstGraph) > gp_UpperBoundEdgeStorage(srcGraph)) + { + for (e = gp_UpperBoundEdgeStorage(srcGraph); e < gp_UpperBoundEdgeStorage(dstGraph); e++) + _InitEdgeRec(dstGraph, e); + } + // Give the dstGraph the same size and intrinsic properties dstGraph->N = gp_GetN(srcGraph); dstGraph->NV = gp_GetNV(srcGraph); @@ -1062,21 +1057,12 @@ int gp_CopyGraph(graphP dstGraph, graphP srcGraph) if (gp_CopyExtensions(dstGraph, srcGraph) != OK) return NOTOK; - // Copy the graph's function table, which has the pointers to - // the most recent extension overloads of each function (or - // the original function pointer if a particular function has - // not been overloaded). - // - // This must be done after copying the extension because the - // first step of copying the extensions is to free the extensions - // of the dstGraph, which performs _InitFunctionTable() on dstGraph. - // Therefore, assigning the srcGraph functions to dstGraph *before* - // copying the extensions doesn't work because the assignment would be - // wiped out. This, in turn, means that the DupContext function of an - // extension *cannot* depend on any extension function overloads; - // the extension must directly invoke extension functions only. - *(dstGraph->functions) = *(srcGraph->functions); - + // We do not copy the function table of srcGraph to the dstGraph + // because copy extensions now copies all possible data from + // srcGraph to dstGraph, but it does not extend dstGraph with + // any extensions it doesn't already have, so the dstGraph + // function table is already correct for its type. + return OK; } @@ -2754,7 +2740,7 @@ int _ComputeEdgeRecordType(graphP theGraph, int a, int b, int edgeType) } /**************************************************************************** - _SetEdgeType() + _RestoreEdgeType() When we are restoring an edge, we must restore its type (tree edge or cycle edge). We can deduce what the type was based on other information in the graph. @@ -2763,7 +2749,7 @@ int _ComputeEdgeRecordType(graphP theGraph, int a, int b, int edgeType) constant time if u is known to have a degree bound by a constant. ****************************************************************************/ -int _SetEdgeType(graphP theGraph, int u, int v) +int _RestoreEdgeType(graphP theGraph, int u, int v) { int e, eTwin, u_orig, v_orig; diff --git a/planarity/c/graphLib/graph.h b/planarity/c/graphLib/graph.h index fd3e0e1..bce1e0c 100644 --- a/planarity/c/graphLib/graph.h +++ b/planarity/c/graphLib/graph.h @@ -144,26 +144,17 @@ extern "C" #ifdef USE_1BASEDARRAYS /*********************************************/ -// These lower and upper bounds for edge storage are used for initializing and for -// iterating through all of the edge storage, including space not yet containing edges. -#define gp_LowerBoundEdgeStorage(theGraph) (2) -#define gp_UpperBoundEdgeStorage(theGraph) (gp_LowerBoundEdgeStorage(theGraph) + ((theGraph)->edgeCapacity << 1)) +// Lower and upper edge bounds methods are used to test whether a given valid +// edge storage location falls within the range of locations occupied by edges +// of the graph. Often used in combination with gp_EdgeInUse(), defined below. +#define gp_LowerBoundEdges(theGraph) (2) +#define gp_UpperBoundEdges(theGraph) (gp_LowerBoundEdges(theGraph) + ((gp_GetM(theGraph) + (theGraph)->numEdgeHoles) << 1)) // Test whether an index e indicates a valid edge storage location // (versus NIL in non-debug, or including bounds checking in DEBUG mode #define gp_IsEdge(theGraph, e) (e) #define gp_IsNotEdge(theGraph, e) (!(e)) -#ifdef DEBUG -#undef gp_IsEdge -#define gp_IsEdge(theGraph, e) \ - ((e) == NIL \ - ? 0 \ - : ((e) < gp_LowerBoundEdgeStorage(theGraph) || (e) >= gp_UpperBoundEdgeStorage(theGraph) \ - ? (NOTOK, 0) \ - : 1)) -#endif - // Given a valid edge record storage index e, we test whether e is in use by an // existing edge by testing whether or not it indicates a neighbor vertex (versus NIL) // This test is needed to avoid edge index holes created by gp_DeleteEdge()). @@ -173,12 +164,24 @@ extern "C" /*********************************************/ #else /* When using 0-based Arrays ***********/ /*********************************************/ -#define gp_LowerBoundEdgeStorage(theGraph) (0) -#define gp_UpperBoundEdgeStorage(theGraph) (gp_LowerBoundEdgeStorage(theGraph) + ((theGraph)->edgeCapacity << 1)) +#define gp_LowerBoundEdges(theGraph) (0) +#define gp_UpperBoundEdges(theGraph) (gp_LowerBoundEdges(theGraph) + ((gp_GetM(theGraph) + (theGraph)->numEdgeHoles) << 1)) #define gp_IsEdge(theGraph, e) ((e) != NIL) #define gp_IsNotEdge(theGraph, e) ((e) == NIL) +#define gp_EdgeInUse(theGraph, e) (gp_GetNeighbor(theGraph, e) != NIL) +#define gp_EdgeNotInUse(theGraph, e) (gp_GetNeighbor(theGraph, e) == NIL) +/*********************************************/ +#endif /* End of macros for 0-based Arrays ***/ +/*********************************************/ + +// These lower and upper bounds for edge storage are used for initializing and for +// iterating through all of the edge storage, including space not yet containing edges. +#define gp_LowerBoundEdgeStorage(theGraph) (gp_LowerBoundEdges(theGraph)) +#define gp_UpperBoundEdgeStorage(theGraph) (gp_LowerBoundEdgeStorage(theGraph) + ((theGraph)->edgeCapacity << 1)) + +// A nice bounds-checking version for DEBUG mode compilation #ifdef DEBUG #undef gp_IsEdge #define gp_IsEdge(theGraph, e) \ @@ -189,18 +192,6 @@ extern "C" : 1)) #endif -#define gp_EdgeInUse(theGraph, e) (gp_GetNeighbor(theGraph, e) != NIL) -#define gp_EdgeNotInUse(theGraph, e) (!gp_GetNeighbor(theGraph, e) == NIL) -/*********************************************/ -#endif /* End of macros for 0-based Arrays ***/ -/*********************************************/ - -// Lower and upper edge bounds methods are used to test whether a given valid -// edge storage location falls within the range of locations occupied by edges -// of the graph. May be used in combination with gp_EdgeInUse(). -#define gp_LowerBoundEdges(theGraph) (gp_LowerBoundEdgeStorage(theGraph)) -#define gp_UpperBoundEdges(theGraph) (gp_LowerBoundEdges(theGraph) + ((gp_GetM(theGraph) + (theGraph)->numEdgeHoles) << 1)) - // An edge is represented by two consecutive edge records in the edge array E. // If an even number, xor 1 will add one; if an odd number, xor 1 will subtract 1 #define gp_GetTwin(theGraph, e) ((e) ^ 1) diff --git a/planarity/c/graphLib/homeomorphSearch/graphK23Search_Extensions.c b/planarity/c/graphLib/homeomorphSearch/graphK23Search_Extensions.c index 5cfc391..35c3e67 100644 --- a/planarity/c/graphLib/homeomorphSearch/graphK23Search_Extensions.c +++ b/planarity/c/graphLib/homeomorphSearch/graphK23Search_Extensions.c @@ -28,7 +28,7 @@ int _K23Search_CheckObstructionIntegrity(graphP theGraph, graphP origGraph); /* Forward declarations of functions used by the extension system */ -void *_K23Search_DupContext(void *pContext, void *theGraph); +int _K23Search_CopyData(void *, void *); void _K23Search_FreeContext(void *); /**************************************************************************** @@ -85,7 +85,7 @@ int gp_ExtendWith_K23Search(graphP theGraph) // Store the K23 search context, including the data structure and the // function pointers, as an extension of the graph if (gp_AddExtension(theGraph, &K23SEARCH_ID, (void *)context, - _K23Search_DupContext, _K23Search_FreeContext, + _K23Search_CopyData, _K23Search_FreeContext, &context->functions) != OK) { _K23Search_FreeContext(context); @@ -107,20 +107,11 @@ int gp_Detach_K23Search(graphP theGraph) } /******************************************************************** - _K23Search_DupContext() + _K23Search_CopyData() ********************************************************************/ - -void *_K23Search_DupContext(void *pContext, void *theGraph) +int _K23Search_CopyData(void *dstContext, void *srcContext) { - K23SearchContext *context = (K23SearchContext *)pContext; - K23SearchContext *newContext = (K23SearchContext *)malloc(sizeof(K23SearchContext)); - - if (newContext != NULL) - { - *newContext = *context; - } - - return newContext; + return OK; } /******************************************************************** diff --git a/planarity/c/graphLib/homeomorphSearch/graphK33Search.c b/planarity/c/graphLib/homeomorphSearch/graphK33Search.c index 40a3652..75d6e26 100644 --- a/planarity/c/graphLib/homeomorphSearch/graphK33Search.c +++ b/planarity/c/graphLib/homeomorphSearch/graphK33Search.c @@ -20,7 +20,7 @@ extern int _HideInternalEdges(graphP theGraph, int vertex); extern int _RestoreInternalEdges(graphP theGraph, int stackBottom); extern int _ClearInvertedFlagsInBicomp(graphP theGraph, int BicompRoot); extern int _ComputeEdgeRecordType(graphP theGraph, int a, int b, int edgeType); -extern int _SetEdgeType(graphP theGraph, int u, int v); +extern int _RestoreEdgeType(graphP theGraph, int u, int v); extern int _GetNeighborOnExtFace(graphP theGraph, int curVertex, int *pPrevLink); extern int _JoinBicomps(graphP theGraph); @@ -362,7 +362,7 @@ int _RunExtraK33Tests(graphP theGraph, K33SearchContext *context) // Now mark the lowest x-y path so that we can test whether _any_ x-y path // has points of attachment, px or py, below x or y, respectively (where // below means closer to W than x or y, respectively, along the external face). - if (_MarkLowestXYPath(theGraph) != TRUE) + if (_MarkLowestXYPath(theGraph) != OK) return NOTOK; // Now we test for E4 based on whether px!=x or py!=y. Note that the inequality @@ -918,7 +918,7 @@ int _FindK33WithMergeBlocker(graphP theGraph, K33SearchContext *context, int v, The function returns NOTOK on internal error, OK otherwise. Preconditions: The X-Y path is marked visited by a prior invocation of - the meothd _MarkLowestXYPath() above. + the method _MarkLowestXYPath() above. So, we start a depth first search from W to find a visited vertex, except we prune the search to ignore vertices whose obstruction type is other than @@ -1678,8 +1678,8 @@ int _RestoreReducedPath(graphP theGraph, K33SearchContext *context, int e) // Set the types of the newly added edges. In both cases, the first of the two // vertex parameters is known to be degree 2 because they are internal to the // path being restored, so this operation is constant time. - if (_SetEdgeType(theGraph, v, u) != OK || - _SetEdgeType(theGraph, w, x) != OK) + if (_RestoreEdgeType(theGraph, v, u) != OK || + _RestoreEdgeType(theGraph, w, x) != OK) return NOTOK; return OK; @@ -1762,8 +1762,8 @@ int _RestoreAndOrientReducedPaths(graphP theGraph, K33SearchContext *context) /* Set the types of the newly added edges */ - if (_SetEdgeType(theGraph, u, v) != OK || - _SetEdgeType(theGraph, w, x) != OK) + if (_RestoreEdgeType(theGraph, u, v) != OK || + _RestoreEdgeType(theGraph, w, x) != OK) return NOTOK; /* We determine whether the reduction edge may be on the external face, diff --git a/planarity/c/graphLib/homeomorphSearch/graphK33Search_Extensions.c b/planarity/c/graphLib/homeomorphSearch/graphK33Search_Extensions.c index aa7b955..25f33f0 100644 --- a/planarity/c/graphLib/homeomorphSearch/graphK33Search_Extensions.c +++ b/planarity/c/graphLib/homeomorphSearch/graphK33Search_Extensions.c @@ -49,7 +49,7 @@ int _K33Search_EnsureEdgeCapacity(graphP theGraph, int requiredEdgeCapacity); /* Forward declarations of functions used by the extension system */ -void *_K33Search_DupContext(void *pContext, void *theGraph); +int _K33Search_CopyData(void *dstContext, void *srcContext); void _K33Search_FreeContext(void *); /**************************************************************************** @@ -122,7 +122,7 @@ int gp_ExtendWith_K33Search(graphP theGraph) // Store the K33 search context, including the data structure and the // function pointers, as an extension of the graph if (gp_AddExtension(theGraph, &K33SEARCH_ID, (void *)context, - _K33Search_DupContext, _K33Search_FreeContext, + _K33Search_CopyData, _K33Search_FreeContext, &context->functions) != OK) { _K33Search_FreeContext(context); @@ -239,6 +239,47 @@ int _K33Search_InitStructures(K33SearchContext *context) return OK; } +/******************************************************************** + _K33Search_CopyData() + ********************************************************************/ +int _K33Search_CopyData(void *dstContext, void *srcContext) +{ + K33SearchContext *dstK33Context = (K33SearchContext *)dstContext; + K33SearchContext *srcK33Context = (K33SearchContext *)srcContext; + int dstEdgeStorage, srcEdgeStorage; + + if (dstContext == NULL) + return NOTOK; + + // If the srcContext is NULL, then the caller wants the data + // structures in the dstContext to be reset/reinitialized + + if (srcContext == NULL) + return _K33Search_InitStructures(dstK33Context); + + // ELSE: If there is also a srcContext, then we copy data from it + dstEdgeStorage = gp_UpperBoundEdgeStorage(dstK33Context->theGraph); + srcEdgeStorage = gp_UpperBoundEdgeStorage(srcK33Context->theGraph); + + // The caller (ultimately gp_CopyGraph()) is responsible for making sure that the + // destination graph has enough edge capacity to receive the source graph content + if (dstEdgeStorage < srcEdgeStorage) + return NOTOK; + + // If the destination graph has more edge capacity, then we make sure that the + // extra edge capacity is reinitialized + if (dstEdgeStorage > srcEdgeStorage) + { + memset(dstK33Context->E, NIL_CHAR, gp_UpperBoundEdgeStorage(dstK33Context->theGraph) * sizeof(K33Search_EdgeRec)); + } + + memcpy(dstK33Context->E, srcK33Context->E, gp_UpperBoundEdgeStorage(dstK33Context->theGraph) * sizeof(K33Search_EdgeRec)); + + memcpy(dstK33Context->VI, srcK33Context->VI, gp_UpperBoundVertices(dstK33Context->theGraph) * sizeof(K33Search_VertexInfo)); + + return OK; +} + /******************************************************************** ********************************************************************/ @@ -287,57 +328,53 @@ void _K33Search_ReinitGraph(graphP theGraph) } /******************************************************************** - The current implementation does not support an increase of edge - capacity once the extension is attached to the graph data structure. - This is only due to not being necessary to support. - - For now, it is easy to ensure the correct capacity before attaching - the extension, but support could be added later if there is some - reason to do so. + _K33Search_EnsureEdgeCapacity() ********************************************************************/ int _K33Search_EnsureEdgeCapacity(graphP theGraph, int requiredEdgeCapacity) { - return NOTOK; -} + K33SearchContext *context = NULL; + K33Search_EdgeRecP oldE = NULL, newE = NULL; + int oldEsize = gp_UpperBoundEdgeStorage(theGraph), newEsize = 0; -/******************************************************************** - _K33Search_DupContext() - ********************************************************************/ + // If the requirement is already satisfied, then no work to do + if (gp_GetEdgeCapacity(theGraph) >= requiredEdgeCapacity) + return OK; -void *_K33Search_DupContext(void *pContext, void *theGraph) -{ - K33SearchContext *context = (K33SearchContext *)pContext; - K33SearchContext *newContext = (K33SearchContext *)malloc(sizeof(K33SearchContext)); + // Get the graph's extension context so we can work on it + gp_FindExtension(theGraph, K33SEARCH_ID, (void *)&context); + if (context == NULL) + return NOTOK; - if (newContext != NULL) - { - int VIsize = gp_UpperBoundVertices((graphP)theGraph); - int Esize = gp_UpperBoundEdgeStorage((graphP)theGraph); + // Call the superclass function to make sure lower levels of parallel + // edge arrays can successfully meet the new capacity requirement + if (context->functions.fpEnsureEdgeCapacity(theGraph, requiredEdgeCapacity) != OK) + return NOTOK; - *newContext = *context; + // Save the current E so it can be freed once we replace it + oldE = context->E; - newContext->theGraph = (graphP)theGraph; + // The superclass EnsureEdgeCapacity method succeeded, so the graph's + // new edge capacity is already set, which means we the upper bound of + // the graph's edge storage gives the new parallel array size we need. + newEsize = gp_UpperBoundEdgeStorage(theGraph); - newContext->initialized = 0; - _K33Search_ClearStructures(newContext); - if (((graphP)theGraph)->N > 0) - { - if (_K33Search_CreateStructures(newContext) != OK) - { - _K33Search_FreeContext(newContext); - newContext = NULL; + // We must successfully allocate the new parallel edge array + newE = (K33Search_EdgeRecP)malloc(newEsize * sizeof(K33Search_EdgeRec)); + if (newE == NULL) + return NOTOK; - return NULL; - } + // Clear all new edge records + memset(newE, NIL_CHAR, newEsize * sizeof(K33Search_EdgeRec)); - memcpy(newContext->E, context->E, Esize * sizeof(K33Search_EdgeRec)); - memcpy(newContext->VI, context->VI, VIsize * sizeof(K33Search_VertexInfo)); - LCCopy(newContext->separatedDFSChildLists, context->separatedDFSChildLists); - } - } + // Copy the old edge records to the new edge records + memcpy(newE, oldE, oldEsize * sizeof(K33Search_EdgeRec)); + + // Set the new edge array into the context and free the old one + context->E = newE; + free(oldE); - return newContext; + return OK; } /******************************************************************** @@ -650,13 +687,9 @@ int _K33Search_HandleBlockedBicomp(graphP theGraph, int v, int RootVertex, int R // happen on a child bicomp of vertex v, not a descendant bicomp. return _SearchForK33InBicomp(theGraph, context, v, RootVertex); } - else - { - return context->functions.fpHandleBlockedBicomp(theGraph, v, RootVertex, R); - } - // No way to get here in current implementation, but this protects against future mistakes - return NOTOK; + // else if we are not doing a K3,3 homeomorph search, then call the superclass to handle + return context->functions.fpHandleBlockedBicomp(theGraph, v, RootVertex, R); } /******************************************************************** diff --git a/planarity/c/graphLib/homeomorphSearch/graphK4Search.c b/planarity/c/graphLib/homeomorphSearch/graphK4Search.c index 1081fb7..a814336 100644 --- a/planarity/c/graphLib/homeomorphSearch/graphK4Search.c +++ b/planarity/c/graphLib/homeomorphSearch/graphK4Search.c @@ -17,7 +17,7 @@ extern int _ClearAllVisitedFlagsInBicomp(graphP theGraph, int BicompRoot); extern int _ClearObstructionMarksInBicomp(graphP theGraph, int BicompRoot); // extern int _DeleteUnmarkedEdgesInBicomp(graphP theGraph, int BicompRoot); extern int _ComputeEdgeRecordType(graphP theGraph, int a, int b, int edgeType); -extern int _SetEdgeType(graphP theGraph, int u, int v); +extern int _RestoreEdgeType(graphP theGraph, int u, int v); extern int _GetNeighborOnExtFace(graphP theGraph, int curVertex, int *pPrevLink); extern int _JoinBicomps(graphP theGraph); @@ -1431,7 +1431,7 @@ int _K4_RestoreReducedPath(graphP theGraph, K4SearchContext *context, int e) // Set the types of the newly added edges. In both cases, the first of the two // vertex parameters is known to be degree 2 because they are internal to the // path being restored, so this operation is constant time. - if (_SetEdgeType(theGraph, v, u) != OK || _SetEdgeType(theGraph, w, x) != OK) + if (_RestoreEdgeType(theGraph, v, u) != OK || _RestoreEdgeType(theGraph, w, x) != OK) return NOTOK; return OK; diff --git a/planarity/c/graphLib/homeomorphSearch/graphK4Search_Extensions.c b/planarity/c/graphLib/homeomorphSearch/graphK4Search_Extensions.c index 211f3ed..cf183f0 100644 --- a/planarity/c/graphLib/homeomorphSearch/graphK4Search_Extensions.c +++ b/planarity/c/graphLib/homeomorphSearch/graphK4Search_Extensions.c @@ -42,7 +42,7 @@ int _K4Search_EnsureEdgeCapacity(graphP theGraph, int requiredEdgeCapacity); /* Forward declarations of functions used by the extension system */ -void *_K4Search_DupContext(void *pContext, void *theGraph); +int _K4Search_CopyData(void *dstContext, void *srcContext); void _K4Search_FreeContext(void *); /**************************************************************************** @@ -110,7 +110,7 @@ int gp_ExtendWith_K4Search(graphP theGraph) // Store the K4 search context, including the data structure and the // function pointers, as an extension of the graph if (gp_AddExtension(theGraph, &K4SEARCH_ID, (void *)context, - _K4Search_DupContext, _K4Search_FreeContext, + _K4Search_CopyData, _K4Search_FreeContext, &context->functions) != OK) { _K4Search_FreeContext(context); @@ -205,6 +205,44 @@ int _K4Search_InitStructures(K4SearchContext *context) return OK; } +/******************************************************************** + _K4Search_CopyData() + ********************************************************************/ +int _K4Search_CopyData(void *dstContext, void *srcContext) +{ + K4SearchContext *dstK4Context = (K4SearchContext *) dstContext; + K4SearchContext *srcK4Context = (K4SearchContext *) srcContext; + int dstEdgeStorage, srcEdgeStorage; + + if (dstContext == NULL) + return NOTOK; + + // If the srcContext is NULL, then the caller wants the data + // structures in the dstContext to be reset/reinitialized + + if (srcContext == NULL) + return _K4Search_InitStructures(dstK4Context); + + // ELSE: If there is also a srcContext, then we copy data from it + dstEdgeStorage = gp_UpperBoundEdgeStorage(dstK4Context->theGraph); + srcEdgeStorage = gp_UpperBoundEdgeStorage(srcK4Context->theGraph); + + // The caller (ultimately gp_CopyGraph()) is responsible for making sure that the + // destination graph has enough edge capacity to receive the source graph content + if (dstEdgeStorage < srcEdgeStorage) + return NOTOK; + + // If the destination graph has more edge capacity, then we make sure that the + // extra edge capacity is reinitialized + if (dstEdgeStorage > srcEdgeStorage) + { + memset(dstK4Context->E, NIL_CHAR, gp_UpperBoundEdgeStorage(dstK4Context->theGraph) * sizeof(K4Search_EdgeRec)); + } + + memcpy(dstK4Context->E, srcK4Context->E, gp_UpperBoundEdgeStorage(dstK4Context->theGraph) * sizeof(K4Search_EdgeRec)); + return OK; +} + /******************************************************************** ********************************************************************/ @@ -249,54 +287,53 @@ void _K4Search_ReinitGraph(graphP theGraph) } /******************************************************************** - The current implementation does not support an increase of edge - capacity once the extension is attached to the graph data structure. - This is only due to not being necessary to support. - - For now, it is easy to ensure the correct capacity before attaching - the extension, but support could be added later if there is some - reason to do so. + _K4Search_EnsureEdgeCapacity() ********************************************************************/ int _K4Search_EnsureEdgeCapacity(graphP theGraph, int requiredEdgeCapacity) { - return NOTOK; -} + K4SearchContext *context = NULL; + K4Search_EdgeRecP oldE = NULL, newE = NULL; + int oldEsize = gp_UpperBoundEdgeStorage(theGraph), newEsize = 0; -/******************************************************************** - _K4Search_DupContext() - ********************************************************************/ + // If the requirement is already satisfied, then no work to do + if (gp_GetEdgeCapacity(theGraph) >= requiredEdgeCapacity) + return OK; -void *_K4Search_DupContext(void *pContext, void *theGraph) -{ - K4SearchContext *context = (K4SearchContext *)pContext; - K4SearchContext *newContext = (K4SearchContext *)malloc(sizeof(K4SearchContext)); + // Get the graph's extension context so we can work on it + gp_FindExtension(theGraph, K4SEARCH_ID, (void *)&context); + if (context == NULL) + return NOTOK; - if (newContext != NULL) - { - int Esize = gp_UpperBoundEdgeStorage((graphP)theGraph); + // Call the superclass function to make sure lower levels of parallel + // edge arrays can successfully meet the new capacity requirement + if (context->functions.fpEnsureEdgeCapacity(theGraph, requiredEdgeCapacity) != OK) + return NOTOK; - *newContext = *context; + // Save the current E so it can be freed once we replace it + oldE = context->E; - newContext->theGraph = (graphP)theGraph; + // The superclass EnsureEdgeCapacity method succeeded, so the graph's + // new edge capacity is already set, which means we the upper bound of + // the graph's edge storage gives the new parallel array size we need. + newEsize = gp_UpperBoundEdgeStorage(theGraph); - newContext->initialized = 0; - _K4Search_ClearStructures(newContext); - if (((graphP)theGraph)->N > 0) - { - if (_K4Search_CreateStructures(newContext) != OK) - { - _K4Search_FreeContext(newContext); - newContext = NULL; + // We must successfully allocate the new parallel edge array + newE = (K4Search_EdgeRecP)malloc(newEsize * sizeof(K4Search_EdgeRec)); + if (newE == NULL) + return NOTOK; - return NULL; - } + // Clear all new edge records + memset(newE, NIL_CHAR, newEsize * sizeof(K4Search_EdgeRec)); - memcpy(newContext->E, context->E, Esize * sizeof(K4Search_EdgeRec)); - } - } + // Copy the old edge records to the new edge records + memcpy(newE, oldE, oldEsize * sizeof(K4Search_EdgeRec)); + + // Set the new edge array into the context and free the old one + context->E = newE; + free(oldE); - return newContext; + return OK; } /******************************************************************** @@ -402,13 +439,9 @@ int _K4Search_HandleBlockedBicomp(graphP theGraph, int v, int RootVertex, int R) return RetVal; } - else - { - return context->functions.fpHandleBlockedBicomp(theGraph, v, RootVertex, R); - } - // No way to get here in current implementation, but this protects against future mistakes - return NOTOK; + // else if we are not doing a K3,3 homeomorph search, then call the superclass to handle + return context->functions.fpHandleBlockedBicomp(theGraph, v, RootVertex, R); } /******************************************************************** diff --git a/planarity/c/graphLib/io/strOrFile.c b/planarity/c/graphLib/io/strOrFile.c index 8b32b82..b4eb747 100644 --- a/planarity/c/graphLib/io/strOrFile.c +++ b/planarity/c/graphLib/io/strOrFile.c @@ -237,7 +237,14 @@ char sf_getc(strOrFileP theStrOrFile) int currChar = 0; // Technically, this returns NOTOK on error, but the error is underflow, which is // checked above and so cannot happen. Therefore, safe to use sp_Pop() here. + +#ifndef DEBUG sp_Pop(theStrOrFile->ungetBuf, currChar); +#else + // In DEBUG, MSVC cl is misreading the printf() generated by sp_Pop(), + // so we cut to the underlying debug method to stop its warnings + sp__Pop(theStrOrFile->ungetBuf, &(currChar)); +#endif theChar = (char)currChar; } else if (theStrOrFile->pFile != NULL) @@ -500,7 +507,14 @@ char sf_ungetc(char theChar, strOrFileP theStrOrFile) sp_GetCurrentSize(theStrOrFile->ungetBuf) >= sp_GetCapacity(theStrOrFile->ungetBuf)) return EOF; // Acceptable downcast, allowing char rather than int return type +#ifndef DEBUG sp_Push(theStrOrFile->ungetBuf, theChar); +#else + // In DEBUG, MSVC cl is misreading the printf() generated by sp_Push(), + // so we cut to the underlying debug method to stop its warnings + sp__Push(theStrOrFile->ungetBuf, theChar); +#endif + return theChar; } diff --git a/planarity/c/graphLib/planarityRelated/graphDrawPlanar.private.h b/planarity/c/graphLib/planarityRelated/graphDrawPlanar.private.h index 23b07cb..39de516 100644 --- a/planarity/c/graphLib/planarityRelated/graphDrawPlanar.private.h +++ b/planarity/c/graphLib/planarityRelated/graphDrawPlanar.private.h @@ -86,6 +86,8 @@ extern "C" extern int DRAWPLANAR_ID; + int gp_GetDrawPlanarExtensionIdentifier(void); + #ifdef __cplusplus } #endif diff --git a/planarity/c/graphLib/planarityRelated/graphDrawPlanar_Extensions.c b/planarity/c/graphLib/planarityRelated/graphDrawPlanar_Extensions.c index 58cd3ce..f926b87 100644 --- a/planarity/c/graphLib/planarityRelated/graphDrawPlanar_Extensions.c +++ b/planarity/c/graphLib/planarityRelated/graphDrawPlanar_Extensions.c @@ -47,7 +47,7 @@ int _DrawPlanar_WritePostprocess(graphP theGraph, char **pExtraData); /* Forward declarations of functions used by the extension system */ -void *_DrawPlanar_DupContext(void *pContext, void *theGraph); +int _DrawPlanar_CopyData(void *dstContext, void *srcContext); void _DrawPlanar_FreeContext(void *); /**************************************************************************** @@ -133,7 +133,7 @@ int gp_ExtendWith_DrawPlanar(graphP theGraph) // Store the Draw context, including the data structure and the // function pointers, as an extension of the graph if (gp_AddExtension(theGraph, &DRAWPLANAR_ID, (void *)context, - _DrawPlanar_DupContext, _DrawPlanar_FreeContext, + _DrawPlanar_CopyData, _DrawPlanar_FreeContext, &context->functions) != OK) { _DrawPlanar_FreeContext(context); @@ -170,6 +170,16 @@ int gp_Detach_DrawPlanar(graphP theGraph) return gp_RemoveExtension(theGraph, DRAWPLANAR_ID); } +/******************************************************************** + gp_GetDrawPlanarExtensionIdentifier() + A private function that returns the DRAWPLANAR_ID. + ********************************************************************/ + +int gp_GetDrawPlanarExtensionIdentifier(void) +{ + return DRAWPLANAR_ID; +} + /******************************************************************** _DrawPlanar_ClearStructures() ********************************************************************/ @@ -231,59 +241,62 @@ int _DrawPlanar_CreateStructures(DrawPlanarContext *context) ********************************************************************/ int _DrawPlanar_InitStructures(DrawPlanarContext *context) { - memset(context->E, 0, gp_UpperBoundEdgeStorage(context->theGraph) * sizeof(DrawPlanar_EdgeRec)); - #ifdef USE_1BASEDARRAYS memset(context->VI, NIL_CHAR, gp_UpperBoundVertices(context->theGraph) * sizeof(DrawPlanar_VertexInfo)); #else - int v; graphP theGraph = context->theGraph; if (gp_GetN(theGraph) <= 0) return NOTOK; - for (v = gp_LowerBoundVertices(theGraph); v < gp_UpperBoundVertices(theGraph); ++v) + for (int v = gp_LowerBoundVertices(theGraph); v < gp_UpperBoundVertices(theGraph); ++v) _DrawPlanar_InitVertexInfo(context, v); #endif + memset(context->E, 0, gp_UpperBoundEdgeStorage(context->theGraph) * sizeof(DrawPlanar_EdgeRec)); + return OK; } /******************************************************************** - _DrawPlanar_DupContext() + _DrawPlanar_CopyData() ********************************************************************/ - -void *_DrawPlanar_DupContext(void *pContext, void *theGraph) +int _DrawPlanar_CopyData(void *dstContext, void *srcContext) { - DrawPlanarContext *context = (DrawPlanarContext *)pContext; - DrawPlanarContext *newContext = (DrawPlanarContext *)malloc(sizeof(DrawPlanarContext)); + DrawPlanarContext *dstDrawPlanarContext = (DrawPlanarContext *)dstContext; + DrawPlanarContext *srcDrawPlanarContext = (DrawPlanarContext *)srcContext; + int dstEdgeStorage, srcEdgeStorage; - if (newContext != NULL) - { - int VIsize = gp_UpperBoundVertices((graphP)theGraph); - int Esize = gp_UpperBoundEdgeStorage((graphP)theGraph); + if (dstContext == NULL) + return NOTOK; - *newContext = *context; + // If the srcContext is NULL, then the caller wants the data + // structures in the dstContext to be reset/reinitialized - newContext->theGraph = (graphP)theGraph; + if (srcContext == NULL) + return _DrawPlanar_InitStructures(dstDrawPlanarContext); - newContext->initialized = 0; - _DrawPlanar_ClearStructures(newContext); - if (((graphP)theGraph)->N > 0) - { - if (_DrawPlanar_CreateStructures(newContext) != OK) - { - _DrawPlanar_FreeContext(newContext); - return NULL; - } + // ELSE: If there is also a srcContext, then we copy data from it + dstEdgeStorage = gp_UpperBoundEdgeStorage(dstDrawPlanarContext->theGraph); + srcEdgeStorage = gp_UpperBoundEdgeStorage(srcDrawPlanarContext->theGraph); - // Initialize custom data structures by copying - memcpy(newContext->E, context->E, Esize * sizeof(DrawPlanar_EdgeRec)); - memcpy(newContext->VI, context->VI, VIsize * sizeof(DrawPlanar_VertexInfo)); - } + // The caller (ultimately gp_CopyGraph()) is responsible for making sure that the + // destination graph has enough edge capacity to receive the source graph content + if (dstEdgeStorage < srcEdgeStorage) + return NOTOK; + + // If the destination graph has more edge capacity, then we make sure that the + // extra edge capacity is reinitialized + if (dstEdgeStorage > srcEdgeStorage) + { + memset(dstDrawPlanarContext->E, NIL_CHAR, gp_UpperBoundEdgeStorage(dstDrawPlanarContext->theGraph) * sizeof(DrawPlanar_EdgeRec)); } - return newContext; + memcpy(dstDrawPlanarContext->E, srcDrawPlanarContext->E, gp_UpperBoundEdgeStorage(dstDrawPlanarContext->theGraph) * sizeof(DrawPlanar_EdgeRec)); + + memcpy(dstDrawPlanarContext->VI, srcDrawPlanarContext->VI, gp_UpperBoundVertices(dstDrawPlanarContext->theGraph) * sizeof(DrawPlanar_VertexInfo)); + + return OK; } /******************************************************************** @@ -344,18 +357,53 @@ void _DrawPlanar_ReinitGraph(graphP theGraph) } /******************************************************************** - The current implementation does not support an increase of edge - capacity once the extension is attached to the graph data structure. - This is only due to not being necessary to support. - - For now, it is easy to ensure the correct capacity before attaching - the extension, but support could be added later if there is some - reason to do so. + _DrawPlanar_EnsureEdgeCapacity() ********************************************************************/ int _DrawPlanar_EnsureEdgeCapacity(graphP theGraph, int requiredEdgeCapacity) { - return NOTOK; + DrawPlanarContext *context = NULL; + DrawPlanar_EdgeRecP oldE = NULL, newE = NULL; + int oldEsize = gp_UpperBoundEdgeStorage(theGraph), newEsize = 0; + + // If the requirement is already satisfied, then no work to do + if (gp_GetEdgeCapacity(theGraph) >= requiredEdgeCapacity) + return OK; + + // Get the graph's extension context so we can work on it + gp_FindExtension(theGraph, DRAWPLANAR_ID, (void *)&context); + if (context == NULL) + return NOTOK; + + // Call the superclass function to make sure lower levels of parallel + // edge arrays can successfully meet the new capacity requirement + if (context->functions.fpEnsureEdgeCapacity(theGraph, requiredEdgeCapacity) != OK) + return NOTOK; + + // Save the current E so it can be freed once we replace it + oldE = context->E; + + // The superclass EnsureEdgeCapacity method succeeded, so the graph's + // new edge capacity is already set, which means we the upper bound of + // the graph's edge storage gives the new parallel array size we need. + newEsize = gp_UpperBoundEdgeStorage(theGraph); + + // We must successfully allocate the new parallel edge array + newE = (DrawPlanar_EdgeRecP)malloc(newEsize * sizeof(DrawPlanar_EdgeRec)); + if (newE == NULL) + return NOTOK; + + // Clear all new edge records + memset(newE, NIL_CHAR, newEsize * sizeof(DrawPlanar_EdgeRec)); + + // Copy the old edge records to the new edge records + memcpy(newE, oldE, oldEsize * sizeof(DrawPlanar_EdgeRec)); + + // Set the new edge array into the context and free the old one + context->E = newE; + free(oldE); + + return OK; } /******************************************************************** diff --git a/planarity/c/graphLib/planarityRelated/graphNonplanar.c b/planarity/c/graphLib/planarityRelated/graphNonplanar.c index ba345ac..6af1ced 100644 --- a/planarity/c/graphLib/planarityRelated/graphNonplanar.c +++ b/planarity/c/graphLib/planarityRelated/graphNonplanar.c @@ -569,7 +569,7 @@ int _MarkLowestXYPath(graphP theGraph) Also, if an X-Y path is found (which will be the closest), then the graph isolator context contains its attachment points on the external face of the bicomp rooted by R, and the edges and vertices - in the X-Y path have been marked visited. + in the X-Y path will have been marked visited. ****************************************************************************/ int _MarkClosestXYPath(graphP theGraph, int targetVertex) diff --git a/planarity/classic/cplanarity.pxd b/planarity/classic/cplanarity.pxd index a2d8f90..2e5412b 100644 --- a/planarity/classic/cplanarity.pxd +++ b/planarity/classic/cplanarity.pxd @@ -1,4 +1,8 @@ """Interface for Boyer's (c) planarity algorithms.""" + +cdef extern from "../c/graphLib/lowLevelUtils/appconst.h": + int OK, NOTOK, NULL + cdef extern from "../c/graphLib/graph.h": ctypedef struct graphStruct: pass @@ -37,18 +41,27 @@ cdef extern from "../c/graphLib/graphDFSUtils.h": void gp_SortVertices(graphP theGraph) +cdef extern from "../c/graphLib/io/graphIO.h": + int WRITE_ADJLIST + int gp_Write(graphP theGraph, char *FileName, int Mode) + + cdef extern from "../c/graphLib/extensionSystem/graphExtensions.h": int gp_FindExtension(graphP theGraph, int moduleID, void **pContext) void *gp_GetExtension(graphP theGraph, int moduleID) -cdef extern from "../c/graphLib/io/graphIO.h": - int WRITE_ADJLIST - int gp_Write(graphP theGraph, char *FileName, int Mode) +cdef extern from "../c/graphLib/planarityRelated/graphPlanarity.h": + int gp_ExtendWith_Planarity(graphP theGraph) + int gp_Embed(graphP theGraph, int embedFlags) -cdef extern from "../c/graphLib/lowLevelUtils/appconst.h": - int OK, NOTOK, NULL + int NONEMBEDDABLE + int EMBEDFLAGS_PLANAR, EMBEDFLAGS_DRAWPLANAR + + +cdef extern from "../c/graphLib/planarityRelated/graphOuterplanarity.h": + int gp_ExtendWith_Outerplanarity(graphP theGraph) cdef extern from "../c/graphLib/planarityRelated/graphDrawPlanar.h": @@ -72,16 +85,3 @@ cdef extern from "../c/graphLib/planarityRelated/graphDrawPlanar.private.h": ctypedef struct DrawPlanarContext: DrawPlanar_EdgeRecP E DrawPlanar_VertexInfoP VI - - -cdef extern from "../c/graphLib/planarityRelated/graphOuterplanarity.h": - int gp_ExtendWith_Outerplanarity(graphP theGraph) - - -cdef extern from "../c/graphLib/planarityRelated/graphPlanarity.h": - int gp_ExtendWith_Planarity(graphP theGraph) - - int gp_Embed(graphP theGraph, int embedFlags) - - int NONEMBEDDABLE - int EMBEDFLAGS_PLANAR, EMBEDFLAGS_DRAWPLANAR diff --git a/planarity/classic/planarity.c b/planarity/classic/planarity.c index d34187a..3dbe4c0 100644 --- a/planarity/classic/planarity.c +++ b/planarity/classic/planarity.c @@ -1163,15 +1163,15 @@ static int __Pyx_init_co_variables(void) { /* Early includes */ #include #include +#include "../c/graphLib/lowLevelUtils/appconst.h" #include "../c/graphLib/graph.h" #include "../c/graphLib/graphDFSUtils.h" -#include "../c/graphLib/extensionSystem/graphExtensions.h" #include "../c/graphLib/io/graphIO.h" -#include "../c/graphLib/lowLevelUtils/appconst.h" +#include "../c/graphLib/extensionSystem/graphExtensions.h" +#include "../c/graphLib/planarityRelated/graphPlanarity.h" +#include "../c/graphLib/planarityRelated/graphOuterplanarity.h" #include "../c/graphLib/planarityRelated/graphDrawPlanar.h" #include "../c/graphLib/planarityRelated/graphDrawPlanar.private.h" -#include "../c/graphLib/planarityRelated/graphOuterplanarity.h" -#include "../c/graphLib/planarityRelated/graphPlanarity.h" #ifdef _OPENMP #include #endif /* _OPENMP */ diff --git a/planarity/full/cgraphLib.pxd b/planarity/full/cgraphLib.pxd index bd5002e..533372b 100644 --- a/planarity/full/cgraphLib.pxd +++ b/planarity/full/cgraphLib.pxd @@ -42,6 +42,7 @@ cdef extern from "../c/graphLib/graph.h": int gp_GetVertexDegree(graphP theGraph, int v) int gp_AddEdge(graphP theGraph, int u, int ulink, int v, int vlink) + int gp_DynamicAddEdge(graphP theGraph, int u, int ulink, int v, int vlink) int gp_DeleteEdge(graphP theGraph, int e) int AT_EDGE_CAPACITY_LIMIT @@ -50,15 +51,15 @@ cdef extern from "../c/graphLib/graph.h": pass ctypedef edgeRec * edgeRecP - int gp_LowerBoundEdgeStorage(graphP theGraph) - int gp_UpperBoundEdgeStorage(graphP theGraph) + int gp_LowerBoundEdges(graphP theGraph) + int gp_UpperBoundEdges(graphP theGraph) int gp_IsEdge(graphP theGraph, int v) int gp_EdgeInUse(graphP theGraph, int e) - int gp_LowerBoundEdges(graphP theGraph) - int gp_UpperBoundEdges(graphP theGraph) + int gp_LowerBoundEdgeStorage(graphP theGraph) + int gp_UpperBoundEdgeStorage(graphP theGraph) int gp_GetNextEdge(graphP theGraph, int e) diff --git a/planarity/full/g6IterationUtils.c b/planarity/full/g6IterationUtils.c index 75913f5..14d9505 100644 --- a/planarity/full/g6IterationUtils.c +++ b/planarity/full/g6IterationUtils.c @@ -1133,15 +1133,15 @@ static int __Pyx_init_co_variables(void) { #include "../c/graphLib/graphLib.h" #include "../c/graphLib/lowLevelUtils/appconst.h" #include "../c/graphLib/graph.h" -#include "../c/graphLib/homeomorphSearch/graphK23Search.h" -#include "../c/graphLib/homeomorphSearch/graphK33Search.h" -#include "../c/graphLib/homeomorphSearch/graphK4Search.h" #include "../c/graphLib/io/graphIO.h" -#include "../c/graphLib/planarityRelated/graphDrawPlanar.h" -#include "../c/graphLib/planarityRelated/graphOuterplanarity.h" -#include "../c/graphLib/planarityRelated/graphPlanarity.h" #include "../c/graphLib/io/g6-read-iterator.h" #include "../c/graphLib/io/g6-write-iterator.h" +#include "../c/graphLib/planarityRelated/graphPlanarity.h" +#include "../c/graphLib/planarityRelated/graphOuterplanarity.h" +#include "../c/graphLib/planarityRelated/graphDrawPlanar.h" +#include "../c/graphLib/homeomorphSearch/graphK23Search.h" +#include "../c/graphLib/homeomorphSearch/graphK33Search.h" +#include "../c/graphLib/homeomorphSearch/graphK4Search.h" #ifdef _OPENMP #include #endif /* _OPENMP */ @@ -2421,9 +2421,9 @@ static int __Pyx_State_RemoveModule(void*); /* Module declarations from "planarity.full.graphLib" */ static int (*__pyx_f_9planarity_4full_8graphLib_g6_NewReader)(G6ReadIteratorP *, graphP); /*proto*/ -static PyObject *(*__pyx_f_9planarity_4full_8graphLib_g6_EndReached)(G6ReadIteratorP); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName)(G6ReadIteratorP, char *); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_g6_ReadGraph)(G6ReadIteratorP); /*proto*/ +static PyObject *(*__pyx_f_9planarity_4full_8graphLib_g6_EndReached)(G6ReadIteratorP); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_g6_FreeReader)(G6ReadIteratorP *); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_g6_NewWriter)(G6WriteIteratorP *, graphP); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_g6_InitWriterWithFileName)(G6WriteIteratorP, char *); /*proto*/ @@ -2446,9 +2446,9 @@ static const char __pyx_k_Cython_wrapper_for_the_Edge_Add[] = "\nCython wrapper /* #### Code section: decls ### */ static int __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator___cinit__(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self, struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_curr_graph); /* proto */ static void __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_2__dealloc__(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_EndReached(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_InitReaderWithFileName(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self, PyObject *__pyx_v_infile_name); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_ReadGraph(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_InitReaderWithFileName(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self, PyObject *__pyx_v_infile_name); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_ReadGraph(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_EndReached(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_9planarity_4full_16g6IterationUtils_15G6WriteIterator___cinit__(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6WriteIterator *__pyx_v_self, struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_graph_to_write); /* proto */ @@ -3072,7 +3072,7 @@ static void __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_2__dea * # graphP will be cleaned up with gp_Free() * graphLib.g6_FreeReader(&self._g6ReadIterator) # <<<<<<<<<<<<<< * - * def g6_EndReached(self): + * def g6_InitReaderWithFileName(self, str infile_name): */ __pyx_f_9planarity_4full_8graphLib_g6_FreeReader((&__pyx_v_self->_g6ReadIterator)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L1_error) @@ -3103,115 +3103,22 @@ static void __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_2__dea /* "planarity/full/g6IterationUtils.pyx":42 * graphLib.g6_FreeReader(&self._g6ReadIterator) * - * def g6_EndReached(self): # <<<<<<<<<<<<<< - * return graphLib.g6_EndReached(self._g6ReadIterator) - * -*/ - -/* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_EndReached(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_EndReached, "G6ReadIterator.g6_EndReached(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_EndReached = {"g6_EndReached", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_EndReached, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_EndReached}; -static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_EndReached(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("g6_EndReached (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_SIZE - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("g6_EndReached", 1, 0, 0, __pyx_nargs); return NULL; } - const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("g6_EndReached", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_EndReached(((struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_EndReached(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__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("g6_EndReached", 0); - - /* "planarity/full/g6IterationUtils.pyx":43 - * - * def g6_EndReached(self): - * return graphLib.g6_EndReached(self._g6ReadIterator) # <<<<<<<<<<<<<< - * - * def g6_InitReaderWithFileName(self, str infile_name): -*/ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_g6_EndReached(__pyx_v_self->_g6ReadIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "planarity/full/g6IterationUtils.pyx":42 - * graphLib.g6_FreeReader(&self._g6ReadIterator) - * - * def g6_EndReached(self): # <<<<<<<<<<<<<< - * return graphLib.g6_EndReached(self._g6ReadIterator) - * -*/ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("planarity.full.g6IterationUtils.G6ReadIterator.g6_EndReached", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "planarity/full/g6IterationUtils.pyx":45 - * return graphLib.g6_EndReached(self._g6ReadIterator) - * * def g6_InitReaderWithFileName(self, str infile_name): # <<<<<<<<<<<<<< * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = infile_name.encode('utf-8') */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_InitReaderWithFileName(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_InitReaderWithFileName(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_InitReaderWithFileName, "G6ReadIterator.g6_InitReaderWithFileName(self, str infile_name)"); -static PyMethodDef __pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_InitReaderWithFileName = {"g6_InitReaderWithFileName", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_InitReaderWithFileName, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_InitReaderWithFileName}; -static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_InitReaderWithFileName(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_InitReaderWithFileName, "G6ReadIterator.g6_InitReaderWithFileName(self, str infile_name)"); +static PyMethodDef __pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_InitReaderWithFileName = {"g6_InitReaderWithFileName", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_InitReaderWithFileName, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_InitReaderWithFileName}; +static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_InitReaderWithFileName(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -3241,32 +3148,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_infile_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 45, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 42, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 45, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 42, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "g6_InitReaderWithFileName", 0) < (0)) __PYX_ERR(0, 45, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "g6_InitReaderWithFileName", 0) < (0)) __PYX_ERR(0, 42, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("g6_InitReaderWithFileName", 1, 1, 1, i); __PYX_ERR(0, 45, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("g6_InitReaderWithFileName", 1, 1, 1, i); __PYX_ERR(0, 42, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 45, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 42, __pyx_L3_error) } __pyx_v_infile_name = ((PyObject*)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("g6_InitReaderWithFileName", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 45, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("g6_InitReaderWithFileName", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 42, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -3277,8 +3184,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_infile_name), (&PyUnicode_Type), 1, "infile_name", 1))) __PYX_ERR(0, 45, __pyx_L1_error) - __pyx_r = __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_InitReaderWithFileName(((struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *)__pyx_v_self), __pyx_v_infile_name); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_infile_name), (&PyUnicode_Type), 1, "infile_name", 1))) __PYX_ERR(0, 42, __pyx_L1_error) + __pyx_r = __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_InitReaderWithFileName(((struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *)__pyx_v_self), __pyx_v_infile_name); /* function exit code */ goto __pyx_L0; @@ -3297,7 +3204,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_InitReaderWithFileName(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self, PyObject *__pyx_v_infile_name) { +static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_InitReaderWithFileName(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self, PyObject *__pyx_v_infile_name) { PyObject *__pyx_v_encoded = 0; char const *__pyx_v_encodedInfileName; PyObject *__pyx_r = NULL; @@ -3314,7 +3221,7 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("g6_InitReaderWithFileName", 0); - /* "planarity/full/g6IterationUtils.pyx":47 + /* "planarity/full/g6IterationUtils.pyx":44 * def g6_InitReaderWithFileName(self, str infile_name): * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = infile_name.encode('utf-8') # <<<<<<<<<<<<<< @@ -3323,46 +3230,46 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6 */ if (unlikely(__pyx_v_infile_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 47, __pyx_L1_error) + __PYX_ERR(0, 44, __pyx_L1_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_infile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_infile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_encoded = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "planarity/full/g6IterationUtils.pyx":48 + /* "planarity/full/g6IterationUtils.pyx":45 * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = infile_name.encode('utf-8') * cdef const char *encodedInfileName = encoded # <<<<<<<<<<<<<< * if graphLib.g6_InitReaderWithFileName(self._g6ReadIterator, encodedInfileName) != graphLib.OK: * raise RuntimeError( */ - __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L1_error) __pyx_v_encodedInfileName = __pyx_t_2; - /* "planarity/full/g6IterationUtils.pyx":49 + /* "planarity/full/g6IterationUtils.pyx":46 * cdef bytes encoded = infile_name.encode('utf-8') * cdef const char *encodedInfileName = encoded * if graphLib.g6_InitReaderWithFileName(self._g6ReadIterator, encodedInfileName) != graphLib.OK: # <<<<<<<<<<<<<< * raise RuntimeError( * f"Unable to initialize reader with filename, as " */ - __pyx_t_3 = __pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName(__pyx_v_self->_g6ReadIterator, __pyx_v_encodedInfileName); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 49, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_3 = __pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName(__pyx_v_self->_g6ReadIterator, __pyx_v_encodedInfileName); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 46, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 49, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 49, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __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(0, 49, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_6)) { - /* "planarity/full/g6IterationUtils.pyx":50 + /* "planarity/full/g6IterationUtils.pyx":47 * cdef const char *encodedInfileName = encoded * if graphLib.g6_InitReaderWithFileName(self._g6ReadIterator, encodedInfileName) != graphLib.OK: * raise RuntimeError( # <<<<<<<<<<<<<< @@ -3375,14 +3282,14 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6 PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_mstate_global->__pyx_kp_u_Unable_to_initialize_reader_with}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 50, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 47, __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(0, 50, __pyx_L1_error) + __PYX_ERR(0, 47, __pyx_L1_error) - /* "planarity/full/g6IterationUtils.pyx":49 + /* "planarity/full/g6IterationUtils.pyx":46 * cdef bytes encoded = infile_name.encode('utf-8') * cdef const char *encodedInfileName = encoded * if graphLib.g6_InitReaderWithFileName(self._g6ReadIterator, encodedInfileName) != graphLib.OK: # <<<<<<<<<<<<<< @@ -3391,8 +3298,8 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6 */ } - /* "planarity/full/g6IterationUtils.pyx":45 - * return graphLib.g6_EndReached(self._g6ReadIterator) + /* "planarity/full/g6IterationUtils.pyx":42 + * graphLib.g6_FreeReader(&self._g6ReadIterator) * * def g6_InitReaderWithFileName(self, str infile_name): # <<<<<<<<<<<<<< * # Convert Python str to UTF-8 encoded bytes, and then to const char * @@ -3415,7 +3322,7 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6 return __pyx_r; } -/* "planarity/full/g6IterationUtils.pyx":55 +/* "planarity/full/g6IterationUtils.pyx":52 * ) * * def g6_ReadGraph(self): # <<<<<<<<<<<<<< @@ -3424,16 +3331,16 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6 */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_ReadGraph(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_ReadGraph(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_ReadGraph, "G6ReadIterator.g6_ReadGraph(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_ReadGraph = {"g6_ReadGraph", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_ReadGraph, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_ReadGraph}; -static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_ReadGraph(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_ReadGraph, "G6ReadIterator.g6_ReadGraph(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_ReadGraph = {"g6_ReadGraph", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_ReadGraph, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_ReadGraph}; +static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_ReadGraph(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -3459,14 +3366,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("g6_ReadGraph", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_ReadGraph(((struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_ReadGraph(((struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_ReadGraph(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_ReadGraph(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -3480,29 +3387,29 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8 int __pyx_clineno = 0; __Pyx_RefNannySetupContext("g6_ReadGraph", 0); - /* "planarity/full/g6IterationUtils.pyx":56 + /* "planarity/full/g6IterationUtils.pyx":53 * * def g6_ReadGraph(self): * if graphLib.g6_ReadGraph(self._g6ReadIterator) != graphLib.OK: # <<<<<<<<<<<<<< * raise RuntimeError( * f"Unable to read graph, as g6_ReadGraph() in EAPS graphLib " */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_g6_ReadGraph(__pyx_v_self->_g6ReadIterator); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 56, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_g6_ReadGraph(__pyx_v_self->_g6ReadIterator); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 53, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 56, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 56, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/g6IterationUtils.pyx":57 + /* "planarity/full/g6IterationUtils.pyx":54 * def g6_ReadGraph(self): * if graphLib.g6_ReadGraph(self._g6ReadIterator) != graphLib.OK: * raise RuntimeError( # <<<<<<<<<<<<<< @@ -3515,14 +3422,14 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8 PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Unable_to_read_graph_as_g6_ReadG}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 57, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 54, __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(0, 57, __pyx_L1_error) + __PYX_ERR(0, 54, __pyx_L1_error) - /* "planarity/full/g6IterationUtils.pyx":56 + /* "planarity/full/g6IterationUtils.pyx":53 * * def g6_ReadGraph(self): * if graphLib.g6_ReadGraph(self._g6ReadIterator) != graphLib.OK: # <<<<<<<<<<<<<< @@ -3531,7 +3438,7 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8 */ } - /* "planarity/full/g6IterationUtils.pyx":55 + /* "planarity/full/g6IterationUtils.pyx":52 * ) * * def g6_ReadGraph(self): # <<<<<<<<<<<<<< @@ -3554,6 +3461,99 @@ static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8 return __pyx_r; } +/* "planarity/full/g6IterationUtils.pyx":59 + * ) + * + * def g6_EndReached(self): # <<<<<<<<<<<<<< + * return graphLib.g6_EndReached(self._g6ReadIterator) + * +*/ + +/* Python wrapper */ +static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_EndReached(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_EndReached, "G6ReadIterator.g6_EndReached(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_EndReached = {"g6_EndReached", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_EndReached, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_EndReached}; +static PyObject *__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_EndReached(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("g6_EndReached (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("g6_EndReached", 1, 0, 0, __pyx_nargs); return NULL; } + const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) return NULL; + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("g6_EndReached", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_EndReached(((struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_EndReached(struct __pyx_obj_9planarity_4full_16g6IterationUtils_G6ReadIterator *__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("g6_EndReached", 0); + + /* "planarity/full/g6IterationUtils.pyx":60 + * + * def g6_EndReached(self): + * return graphLib.g6_EndReached(self._g6ReadIterator) # <<<<<<<<<<<<<< + * + * +*/ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_g6_EndReached(__pyx_v_self->_g6ReadIterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "planarity/full/g6IterationUtils.pyx":59 + * ) + * + * def g6_EndReached(self): # <<<<<<<<<<<<<< + * return graphLib.g6_EndReached(self._g6ReadIterator) + * +*/ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("planarity.full.g6IterationUtils.G6ReadIterator.g6_EndReached", __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__" @@ -4823,9 +4823,9 @@ static void __pyx_tp_dealloc_9planarity_4full_16g6IterationUtils_G6ReadIterator( } static PyMethodDef __pyx_methods_9planarity_4full_16g6IterationUtils_G6ReadIterator[] = { - {"g6_EndReached", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_EndReached, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_EndReached}, - {"g6_InitReaderWithFileName", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_InitReaderWithFileName, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_InitReaderWithFileName}, - {"g6_ReadGraph", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_ReadGraph, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_ReadGraph}, + {"g6_InitReaderWithFileName", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_InitReaderWithFileName, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_4g6_InitReaderWithFileName}, + {"g6_ReadGraph", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_ReadGraph, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_6g6_ReadGraph}, + {"g6_EndReached", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_EndReached, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_8g6_EndReached}, {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_10__reduce_cython__}, {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_16g6IterationUtils_14G6ReadIterator_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_16g6IterationUtils_14G6ReadIterator_12__setstate_cython__}, {0, 0, 0, 0} @@ -5528,46 +5528,46 @@ __Pyx_RefNannySetupContext("PyInit_g6IterationUtils", 0); /* "planarity/full/g6IterationUtils.pyx":42 * graphLib.g6_FreeReader(&self._g6ReadIterator) * - * def g6_EndReached(self): # <<<<<<<<<<<<<< - * return graphLib.g6_EndReached(self._g6ReadIterator) - * + * def g6_InitReaderWithFileName(self, str infile_name): # <<<<<<<<<<<<<< + * # Convert Python str to UTF-8 encoded bytes, and then to const char * + * cdef bytes encoded = infile_name.encode('utf-8') */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_EndReached, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_G6ReadIterator_g6_EndReached, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_g6IterationUtils, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_5g6_InitReaderWithFileName, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_G6ReadIterator_g6_InitReaderWith, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_g6IterationUtils, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_16g6IterationUtils_G6ReadIterator, __pyx_mstate_global->__pyx_n_u_g6_EndReached, __pyx_t_2) < (0)) __PYX_ERR(0, 42, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_16g6IterationUtils_G6ReadIterator, __pyx_mstate_global->__pyx_n_u_g6_InitReaderWithFileName, __pyx_t_2) < (0)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/g6IterationUtils.pyx":45 - * return graphLib.g6_EndReached(self._g6ReadIterator) + /* "planarity/full/g6IterationUtils.pyx":52 + * ) * - * def g6_InitReaderWithFileName(self, str infile_name): # <<<<<<<<<<<<<< - * # Convert Python str to UTF-8 encoded bytes, and then to const char * - * cdef bytes encoded = infile_name.encode('utf-8') + * def g6_ReadGraph(self): # <<<<<<<<<<<<<< + * if graphLib.g6_ReadGraph(self._g6ReadIterator) != graphLib.OK: + * raise RuntimeError( */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_InitReaderWithFileName, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_G6ReadIterator_g6_InitReaderWith, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_g6IterationUtils, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_7g6_ReadGraph, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_G6ReadIterator_g6_ReadGraph, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_g6IterationUtils, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[1])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_16g6IterationUtils_G6ReadIterator, __pyx_mstate_global->__pyx_n_u_g6_InitReaderWithFileName, __pyx_t_2) < (0)) __PYX_ERR(0, 45, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_16g6IterationUtils_G6ReadIterator, __pyx_mstate_global->__pyx_n_u_g6_ReadGraph, __pyx_t_2) < (0)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/g6IterationUtils.pyx":55 + /* "planarity/full/g6IterationUtils.pyx":59 * ) * - * def g6_ReadGraph(self): # <<<<<<<<<<<<<< - * if graphLib.g6_ReadGraph(self._g6ReadIterator) != graphLib.OK: - * raise RuntimeError( + * def g6_EndReached(self): # <<<<<<<<<<<<<< + * return graphLib.g6_EndReached(self._g6ReadIterator) + * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_ReadGraph, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_G6ReadIterator_g6_ReadGraph, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_g6IterationUtils, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_16g6IterationUtils_14G6ReadIterator_9g6_EndReached, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_G6ReadIterator_g6_EndReached, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_g6IterationUtils, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_16g6IterationUtils_G6ReadIterator, __pyx_mstate_global->__pyx_n_u_g6_ReadGraph, __pyx_t_2) < (0)) __PYX_ERR(0, 55, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_16g6IterationUtils_G6ReadIterator, __pyx_mstate_global->__pyx_n_u_g6_EndReached, __pyx_t_2) < (0)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":1 @@ -5859,19 +5859,19 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { PyObject* tuple_dedup_map = PyDict_New(); if (unlikely(!tuple_dedup_map)) return -1; { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 42}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_g6IterationUtils_2, __pyx_mstate->__pyx_n_u_g6_EndReached, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 42}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_infile_name, __pyx_mstate->__pyx_n_u_encoded, __pyx_mstate->__pyx_n_u_encodedInfileName}; + __pyx_mstate_global->__pyx_codeobj_tab[0] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_g6IterationUtils_2, __pyx_mstate->__pyx_n_u_g6_InitReaderWithFileName, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Q_Qd2DDWWZZbbc_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[0])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 45}; - PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_infile_name, __pyx_mstate->__pyx_n_u_encoded, __pyx_mstate->__pyx_n_u_encodedInfileName}; - __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_g6IterationUtils_2, __pyx_mstate->__pyx_n_u_g6_InitReaderWithFileName, __pyx_mstate->__pyx_kp_b_iso88591_A_q_Q_Qd2DDWWZZbbc_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 52}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; + __pyx_mstate_global->__pyx_codeobj_tab[1] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_g6IterationUtils_2, __pyx_mstate->__pyx_n_u_g6_ReadGraph, __pyx_mstate->__pyx_kp_b_iso88591_A_7s_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[1])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 55}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 59}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_g6IterationUtils_2, __pyx_mstate->__pyx_n_u_g6_ReadGraph, __pyx_mstate->__pyx_kp_b_iso88591_A_7s_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[2] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_g6IterationUtils_2, __pyx_mstate->__pyx_n_u_g6_EndReached, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[2])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; diff --git a/planarity/full/g6IterationUtils.pyx b/planarity/full/g6IterationUtils.pyx index 0c7361e..87db3cb 100644 --- a/planarity/full/g6IterationUtils.pyx +++ b/planarity/full/g6IterationUtils.pyx @@ -39,9 +39,6 @@ cdef class G6ReadIterator: # graphP will be cleaned up with gp_Free() graphLib.g6_FreeReader(&self._g6ReadIterator) - def g6_EndReached(self): - return graphLib.g6_EndReached(self._g6ReadIterator) - def g6_InitReaderWithFileName(self, str infile_name): # Convert Python str to UTF-8 encoded bytes, and then to const char * cdef bytes encoded = infile_name.encode('utf-8') @@ -59,6 +56,9 @@ cdef class G6ReadIterator: "failed." ) + def g6_EndReached(self): + return graphLib.g6_EndReached(self._g6ReadIterator) + cdef class G6WriteIterator: cdef graphLib.G6WriteIteratorP _g6WriteIterator diff --git a/planarity/full/graph.c b/planarity/full/graph.c index 896addc..b13922e 100644 --- a/planarity/full/graph.c +++ b/planarity/full/graph.c @@ -2437,13 +2437,14 @@ static graphP (*__pyx_f_9planarity_4full_8graphLib_gp_DupGraph)(graphP); /*proto static int (*__pyx_f_9planarity_4full_8graphLib_gp_FindEdge)(graphP, int, int); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_GetVertexDegree)(graphP, int); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_AddEdge)(graphP, int, int, int, int); /*proto*/ +static int (*__pyx_f_9planarity_4full_8graphLib_gp_DynamicAddEdge)(graphP, int, int, int, int); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge)(graphP, int); /*proto*/ -static int (*__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage)(graphP); /*proto*/ -static int (*__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage)(graphP); /*proto*/ -static int (*__pyx_f_9planarity_4full_8graphLib_gp_IsEdge)(graphP, int); /*proto*/ -static int (*__pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse)(graphP, int); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges)(graphP); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges)(graphP); /*proto*/ +static int (*__pyx_f_9planarity_4full_8graphLib_gp_IsEdge)(graphP, int); /*proto*/ +static int (*__pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse)(graphP, int); /*proto*/ +static int (*__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage)(graphP); /*proto*/ +static int (*__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage)(graphP); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge)(graphP, int); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor)(graphP, int); /*proto*/ static int (*__pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge)(graphP, int); /*proto*/ @@ -2491,33 +2492,34 @@ static struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_pf_9planarity_4full static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_18gp_FindEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_u, int __pyx_v_v); /* proto */ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_20gp_GetVertexDegree(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v); /* proto */ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_22gp_AddEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_u, int __pyx_v_ulink, int __pyx_v_v, int __pyx_v_vlink); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_infile_name); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name, PyObject *__pyx_v_mode); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_embedFlags); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultIntegrity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_copy_of_orig_graph, int __pyx_v_embed_result); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerplanarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPlanar(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderToFile(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToString(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_74__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_76__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DynamicAddEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_u, int __pyx_v_ulink, int __pyx_v_v, int __pyx_v_vlink); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_26gp_DeleteEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_28gp_LowerBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_UpperBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_IsEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_34gp_EdgeInUse(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_36gp_LowerBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_UpperBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNextEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetNeighbor(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_GetFirstEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_LowerBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_UpperBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_IsVertex(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Read(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_infile_name); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_Write(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_ExtendWith_Planarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_Embed(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_embedFlags); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_TestEmbedResultIntegrity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_copy_of_orig_graph, int __pyx_v_embed_result); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_Outerplanarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_ExtendWith_DrawPlanar(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToFile(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_DrawPlanar_RenderToString(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K23Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K33Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_74gp_ExtendWith_K4Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_76__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_78__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_9planarity_4full_5graph_Graph(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ @@ -2544,8 +2546,8 @@ typedef struct { __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop; __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values; - PyObject *__pyx_codeobj_tab[37]; - PyObject *__pyx_string_tab[225]; + PyObject *__pyx_codeobj_tab[38]; + PyObject *__pyx_string_tab[229]; PyObject *__pyx_number_tab[1]; /* #### Code section: module_state_contents ### */ /* CommonTypesMetaclass.module_state_decls */ @@ -2609,209 +2611,213 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[19] #define __pyx_kp_u_Source_and_destination_graphs_mu __pyx_string_tab[20] #define __pyx_kp_u_Source_graph_has_not_been_initia __pyx_string_tab[21] -#define __pyx_kp_u_Unable_to_add_edge_u_v __pyx_string_tab[22] -#define __pyx_kp_u__2 __pyx_string_tab[23] -#define __pyx_kp_u__3 __pyx_string_tab[24] -#define __pyx_kp_u__4 __pyx_string_tab[25] -#define __pyx_kp_u__5 __pyx_string_tab[26] -#define __pyx_kp_u_add_note __pyx_string_tab[27] -#define __pyx_kp_u_and_vlink __pyx_string_tab[28] -#define __pyx_kp_u_disable __pyx_string_tab[29] -#define __pyx_kp_u_enable __pyx_string_tab[30] -#define __pyx_kp_u_failed __pyx_string_tab[31] -#define __pyx_kp_u_gc __pyx_string_tab[32] +#define __pyx_kp_u__2 __pyx_string_tab[22] +#define __pyx_kp_u__3 __pyx_string_tab[23] +#define __pyx_kp_u__4 __pyx_string_tab[24] +#define __pyx_kp_u__5 __pyx_string_tab[25] +#define __pyx_kp_u_add_note __pyx_string_tab[26] +#define __pyx_kp_u_and_vlink __pyx_string_tab[27] +#define __pyx_kp_u_disable __pyx_string_tab[28] +#define __pyx_kp_u_enable __pyx_string_tab[29] +#define __pyx_kp_u_failed __pyx_string_tab[30] +#define __pyx_kp_u_gc __pyx_string_tab[31] +#define __pyx_kp_u_gp_AddEdge_failed_unable_to_add __pyx_string_tab[32] #define __pyx_kp_u_gp_CopyGraph_failed __pyx_string_tab[33] #define __pyx_kp_u_gp_DeleteEdge_failed_invalid_edg __pyx_string_tab[34] #define __pyx_kp_u_gp_DupGraph_failed __pyx_string_tab[35] -#define __pyx_kp_u_gp_EdgeInUse_failed_invalid_edge __pyx_string_tab[36] -#define __pyx_kp_u_gp_EnsureEdgeCapacity_failed_to __pyx_string_tab[37] -#define __pyx_kp_u_gp_GetFirstEdge_failed_invalid_v __pyx_string_tab[38] -#define __pyx_kp_u_gp_GetNeighbor_failed_invalid_ed __pyx_string_tab[39] -#define __pyx_kp_u_gp_GetNextEdge_failed_invalid_ed __pyx_string_tab[40] -#define __pyx_kp_u_gp_InitGraph_failed __pyx_string_tab[41] -#define __pyx_kp_u_gp_New_failed __pyx_string_tab[42] -#define __pyx_kp_u_gp_Read_failed __pyx_string_tab[43] -#define __pyx_kp_u_gp_Write_of_graph_to __pyx_string_tab[44] -#define __pyx_kp_u_is_not_a_valid_vertex_label __pyx_string_tab[45] -#define __pyx_kp_u_is_not_one_of_gam __pyx_string_tab[46] -#define __pyx_kp_u_isenabled __pyx_string_tab[47] -#define __pyx_kp_u_no_default___reduce___due_to_non __pyx_string_tab[48] -#define __pyx_kp_u_planarity_full_graph_pyx __pyx_string_tab[49] -#define __pyx_kp_u_stringsource __pyx_string_tab[50] -#define __pyx_kp_u_with_ulink __pyx_string_tab[51] -#define __pyx_n_u_AT_EDGE_CAPACITY_LIMIT __pyx_string_tab[52] -#define __pyx_n_u_EMBEDFLAGS_DRAWPLANAR __pyx_string_tab[53] -#define __pyx_n_u_EMBEDFLAGS_OUTERPLANAR __pyx_string_tab[54] -#define __pyx_n_u_EMBEDFLAGS_PLANAR __pyx_string_tab[55] -#define __pyx_n_u_EMBEDFLAGS_SEARCHFORK23 __pyx_string_tab[56] -#define __pyx_n_u_EMBEDFLAGS_SEARCHFORK33 __pyx_string_tab[57] -#define __pyx_n_u_EMBEDFLAGS_SEARCHFORK4 __pyx_string_tab[58] -#define __pyx_n_u_FALSE __pyx_string_tab[59] -#define __pyx_n_u_FileName __pyx_string_tab[60] -#define __pyx_n_u_Graph __pyx_string_tab[61] -#define __pyx_n_u_Graph___reduce_cython __pyx_string_tab[62] -#define __pyx_n_u_Graph___setstate_cython __pyx_string_tab[63] -#define __pyx_n_u_Graph_gp_AddEdge __pyx_string_tab[64] -#define __pyx_n_u_Graph_gp_CopyGraph __pyx_string_tab[65] -#define __pyx_n_u_Graph_gp_DeleteEdge __pyx_string_tab[66] -#define __pyx_n_u_Graph_gp_DrawPlanar_RenderToFile __pyx_string_tab[67] -#define __pyx_n_u_Graph_gp_DrawPlanar_RenderToStri __pyx_string_tab[68] -#define __pyx_n_u_Graph_gp_DupGraph __pyx_string_tab[69] -#define __pyx_n_u_Graph_gp_EdgeInUse __pyx_string_tab[70] -#define __pyx_n_u_Graph_gp_Embed __pyx_string_tab[71] -#define __pyx_n_u_Graph_gp_EnsureEdgeCapacity __pyx_string_tab[72] -#define __pyx_n_u_Graph_gp_ExtendWith_DrawPlanar __pyx_string_tab[73] -#define __pyx_n_u_Graph_gp_ExtendWith_K23Search __pyx_string_tab[74] -#define __pyx_n_u_Graph_gp_ExtendWith_K33Search __pyx_string_tab[75] -#define __pyx_n_u_Graph_gp_ExtendWith_K4Search __pyx_string_tab[76] -#define __pyx_n_u_Graph_gp_ExtendWith_Outerplanari __pyx_string_tab[77] -#define __pyx_n_u_Graph_gp_ExtendWith_Planarity __pyx_string_tab[78] -#define __pyx_n_u_Graph_gp_FindEdge __pyx_string_tab[79] -#define __pyx_n_u_Graph_gp_GetEdgeCapacity __pyx_string_tab[80] -#define __pyx_n_u_Graph_gp_GetFirstEdge __pyx_string_tab[81] -#define __pyx_n_u_Graph_gp_GetN __pyx_string_tab[82] -#define __pyx_n_u_Graph_gp_GetNeighbor __pyx_string_tab[83] -#define __pyx_n_u_Graph_gp_GetNextEdge __pyx_string_tab[84] -#define __pyx_n_u_Graph_gp_GetVertexDegree __pyx_string_tab[85] -#define __pyx_n_u_Graph_gp_InitGraph __pyx_string_tab[86] -#define __pyx_n_u_Graph_gp_IsEdge __pyx_string_tab[87] -#define __pyx_n_u_Graph_gp_IsVertex __pyx_string_tab[88] -#define __pyx_n_u_Graph_gp_LowerBoundEdgeStorage __pyx_string_tab[89] -#define __pyx_n_u_Graph_gp_LowerBoundEdges __pyx_string_tab[90] -#define __pyx_n_u_Graph_gp_LowerBoundVertices __pyx_string_tab[91] -#define __pyx_n_u_Graph_gp_Read __pyx_string_tab[92] -#define __pyx_n_u_Graph_gp_ReinitGraph __pyx_string_tab[93] -#define __pyx_n_u_Graph_gp_TestEmbedResultIntegrit __pyx_string_tab[94] -#define __pyx_n_u_Graph_gp_UpperBoundEdgeStorage __pyx_string_tab[95] -#define __pyx_n_u_Graph_gp_UpperBoundEdges __pyx_string_tab[96] -#define __pyx_n_u_Graph_gp_UpperBoundVertices __pyx_string_tab[97] -#define __pyx_n_u_Graph_gp_Write __pyx_string_tab[98] -#define __pyx_n_u_NONEMBEDDABLE __pyx_string_tab[99] -#define __pyx_n_u_NOTOK __pyx_string_tab[100] -#define __pyx_n_u_OK __pyx_string_tab[101] -#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[102] -#define __pyx_n_u_TRUE __pyx_string_tab[103] -#define __pyx_n_u_WRITE_ADJLIST __pyx_string_tab[104] -#define __pyx_n_u_WRITE_ADJMATRIX __pyx_string_tab[105] -#define __pyx_n_u_WRITE_G6 __pyx_string_tab[106] -#define __pyx_n_u_a __pyx_string_tab[107] -#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[108] -#define __pyx_n_u_check_result __pyx_string_tab[109] -#define __pyx_n_u_cline_in_traceback __pyx_string_tab[110] -#define __pyx_n_u_copy_of_orig_graph __pyx_string_tab[111] -#define __pyx_n_u_e __pyx_string_tab[112] -#define __pyx_n_u_embedFlags __pyx_string_tab[113] -#define __pyx_n_u_embed_result __pyx_string_tab[114] -#define __pyx_n_u_encoded __pyx_string_tab[115] -#define __pyx_n_u_func __pyx_string_tab[116] -#define __pyx_n_u_g __pyx_string_tab[117] -#define __pyx_n_u_getstate __pyx_string_tab[118] -#define __pyx_n_u_gp_AddEdge __pyx_string_tab[119] -#define __pyx_n_u_gp_CopyGraph __pyx_string_tab[120] -#define __pyx_n_u_gp_DeleteEdge __pyx_string_tab[121] -#define __pyx_n_u_gp_DrawPlanar_RenderToFile __pyx_string_tab[122] -#define __pyx_n_u_gp_DrawPlanar_RenderToString __pyx_string_tab[123] -#define __pyx_n_u_gp_DupGraph __pyx_string_tab[124] -#define __pyx_n_u_gp_EdgeInUse __pyx_string_tab[125] -#define __pyx_n_u_gp_Embed __pyx_string_tab[126] -#define __pyx_n_u_gp_EnsureEdgeCapacity __pyx_string_tab[127] -#define __pyx_n_u_gp_ExtendWith_DrawPlanar __pyx_string_tab[128] -#define __pyx_n_u_gp_ExtendWith_K23Search __pyx_string_tab[129] -#define __pyx_n_u_gp_ExtendWith_K33Search __pyx_string_tab[130] -#define __pyx_n_u_gp_ExtendWith_K4Search __pyx_string_tab[131] -#define __pyx_n_u_gp_ExtendWith_Outerplanarity __pyx_string_tab[132] -#define __pyx_n_u_gp_ExtendWith_Planarity __pyx_string_tab[133] -#define __pyx_n_u_gp_FindEdge __pyx_string_tab[134] -#define __pyx_n_u_gp_GetEdgeCapacity __pyx_string_tab[135] -#define __pyx_n_u_gp_GetFirstEdge __pyx_string_tab[136] -#define __pyx_n_u_gp_GetN __pyx_string_tab[137] -#define __pyx_n_u_gp_GetNeighbor __pyx_string_tab[138] -#define __pyx_n_u_gp_GetNextEdge __pyx_string_tab[139] -#define __pyx_n_u_gp_GetVertexDegree __pyx_string_tab[140] -#define __pyx_n_u_gp_InitGraph __pyx_string_tab[141] -#define __pyx_n_u_gp_IsEdge __pyx_string_tab[142] -#define __pyx_n_u_gp_IsVertex __pyx_string_tab[143] -#define __pyx_n_u_gp_LowerBoundEdgeStorage __pyx_string_tab[144] -#define __pyx_n_u_gp_LowerBoundEdges __pyx_string_tab[145] -#define __pyx_n_u_gp_LowerBoundVertices __pyx_string_tab[146] -#define __pyx_n_u_gp_Read __pyx_string_tab[147] -#define __pyx_n_u_gp_ReinitGraph __pyx_string_tab[148] -#define __pyx_n_u_gp_TestEmbedResultIntegrity __pyx_string_tab[149] -#define __pyx_n_u_gp_UpperBoundEdgeStorage __pyx_string_tab[150] -#define __pyx_n_u_gp_UpperBoundEdges __pyx_string_tab[151] -#define __pyx_n_u_gp_UpperBoundVertices __pyx_string_tab[152] -#define __pyx_n_u_gp_Write __pyx_string_tab[153] -#define __pyx_n_u_graphLib __pyx_string_tab[154] -#define __pyx_n_u_infile_name __pyx_string_tab[155] -#define __pyx_n_u_int __pyx_string_tab[156] -#define __pyx_n_u_is_coroutine __pyx_string_tab[157] -#define __pyx_n_u_items __pyx_string_tab[158] -#define __pyx_n_u_m __pyx_string_tab[159] -#define __pyx_n_u_main __pyx_string_tab[160] -#define __pyx_n_u_mode __pyx_string_tab[161] -#define __pyx_n_u_mode_code __pyx_string_tab[162] -#define __pyx_n_u_module __pyx_string_tab[163] -#define __pyx_n_u_n __pyx_string_tab[164] -#define __pyx_n_u_name __pyx_string_tab[165] -#define __pyx_n_u_new_edge_capacity __pyx_string_tab[166] -#define __pyx_n_u_new_graph __pyx_string_tab[167] -#define __pyx_n_u_outfile_name __pyx_string_tab[168] -#define __pyx_n_u_planarity_full __pyx_string_tab[169] -#define __pyx_n_u_planarity_full_graph __pyx_string_tab[170] -#define __pyx_n_u_pop __pyx_string_tab[171] -#define __pyx_n_u_pyx_state __pyx_string_tab[172] -#define __pyx_n_u_qualname __pyx_string_tab[173] -#define __pyx_n_u_reduce __pyx_string_tab[174] -#define __pyx_n_u_reduce_cython __pyx_string_tab[175] -#define __pyx_n_u_reduce_ex __pyx_string_tab[176] -#define __pyx_n_u_renditionString __pyx_string_tab[177] -#define __pyx_n_u_return __pyx_string_tab[178] -#define __pyx_n_u_self __pyx_string_tab[179] -#define __pyx_n_u_set_name __pyx_string_tab[180] -#define __pyx_n_u_setdefault __pyx_string_tab[181] -#define __pyx_n_u_setstate __pyx_string_tab[182] -#define __pyx_n_u_setstate_cython __pyx_string_tab[183] -#define __pyx_n_u_src_graph __pyx_string_tab[184] -#define __pyx_n_u_src_graph_uninit_error __pyx_string_tab[185] -#define __pyx_n_u_string_conversion_error __pyx_string_tab[186] -#define __pyx_n_u_test __pyx_string_tab[187] -#define __pyx_n_u_theFileName __pyx_string_tab[188] -#define __pyx_n_u_theGraph_dup __pyx_string_tab[189] -#define __pyx_n_u_u __pyx_string_tab[190] -#define __pyx_n_u_ulink __pyx_string_tab[191] -#define __pyx_n_u_v __pyx_string_tab[192] -#define __pyx_n_u_values __pyx_string_tab[193] -#define __pyx_n_u_vlink __pyx_string_tab[194] -#define __pyx_kp_b_graphP_graphP_graphP_void_int_gr __pyx_string_tab[195] -#define __pyx_kp_b_iso88591_4_Q_aq_xq_A __pyx_string_tab[196] -#define __pyx_kp_b_iso88591_A_0_A_aq __pyx_string_tab[197] -#define __pyx_kp_b_iso88591_A_0_Q __pyx_string_tab[198] -#define __pyx_kp_b_iso88591_A_1D_Cq_aq __pyx_string_tab[199] -#define __pyx_kp_b_iso88591_A_4_3a_aq __pyx_string_tab[200] -#define __pyx_kp_b_iso88591_A_4_Q_a_y_3a_j_q_A_4xs_Yha_A_c_a __pyx_string_tab[201] -#define __pyx_kp_b_iso88591_A_4q __pyx_string_tab[202] -#define __pyx_kp_b_iso88591_A_4t_Qa_a_8_Qd_a __pyx_string_tab[203] -#define __pyx_kp_b_iso88591_A_4t_Qa_a_Qa_AT_Q __pyx_string_tab[204] -#define __pyx_kp_b_iso88591_A_4t_Qa_a_q_at_q __pyx_string_tab[205] -#define __pyx_kp_b_iso88591_A_4t_q_a_B_1_q_L __pyx_string_tab[206] -#define __pyx_kp_b_iso88591_A_4t_q_as_1_4_1 __pyx_string_tab[207] -#define __pyx_kp_b_iso88591_A_4t_q_as_1_4t_q_as_1_1D_Cq __pyx_string_tab[208] -#define __pyx_kp_b_iso88591_A_6_Bd_1_a_1_6_Bd_1_a_1_at_s_G3a __pyx_string_tab[209] -#define __pyx_kp_b_iso88591_A_AT_S_aq __pyx_string_tab[210] -#define __pyx_kp_b_iso88591_A_Cq_aq __pyx_string_tab[211] -#define __pyx_kp_b_iso88591_A_Q_0_BSSVVW_aq_A_a __pyx_string_tab[212] -#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[213] -#define __pyx_kp_b_iso88591_A_X_uCq_5_1_s_4q_A_31A_q_9AT_S_a __pyx_string_tab[214] -#define __pyx_kp_b_iso88591_A_l_MSPQ_a_1 __pyx_string_tab[215] -#define __pyx_kp_b_iso88591_A_q_A __pyx_string_tab[216] -#define __pyx_kp_b_iso88591_A_q_A_81D_Jc_aq __pyx_string_tab[217] -#define __pyx_kp_b_iso88591_A_q_at_Cq_a_EQa __pyx_string_tab[218] -#define __pyx_kp_b_iso88591_A_s_D_r_4q __pyx_string_tab[219] -#define __pyx_kp_b_iso88591_A_s_t1_r_d_at_q __pyx_string_tab[220] -#define __pyx_kp_b_iso88591_Q __pyx_string_tab[221] -#define __pyx_kp_b_iso88591_Q_4L_Q_1_Qa_uA_1_a_q __pyx_string_tab[222] -#define __pyx_kp_b_iso88591_YYZ_1_L_2_a_3d_s_aq_q __pyx_string_tab[223] -#define __pyx_kp_b_iso88591_y_3d_s_aq_q __pyx_string_tab[224] +#define __pyx_kp_u_gp_DynamicAddEdge_failed_unable __pyx_string_tab[36] +#define __pyx_kp_u_gp_EdgeInUse_failed_invalid_edge __pyx_string_tab[37] +#define __pyx_kp_u_gp_EnsureEdgeCapacity_failed_to __pyx_string_tab[38] +#define __pyx_kp_u_gp_GetFirstEdge_failed_invalid_v __pyx_string_tab[39] +#define __pyx_kp_u_gp_GetNeighbor_failed_invalid_ed __pyx_string_tab[40] +#define __pyx_kp_u_gp_GetNextEdge_failed_invalid_ed __pyx_string_tab[41] +#define __pyx_kp_u_gp_InitGraph_failed __pyx_string_tab[42] +#define __pyx_kp_u_gp_New_failed __pyx_string_tab[43] +#define __pyx_kp_u_gp_Read_failed __pyx_string_tab[44] +#define __pyx_kp_u_gp_Write_of_graph_to __pyx_string_tab[45] +#define __pyx_kp_u_is_not_a_valid_vertex_label __pyx_string_tab[46] +#define __pyx_kp_u_is_not_one_of_gam __pyx_string_tab[47] +#define __pyx_kp_u_isenabled __pyx_string_tab[48] +#define __pyx_kp_u_no_default___reduce___due_to_non __pyx_string_tab[49] +#define __pyx_kp_u_planarity_full_graph_pyx __pyx_string_tab[50] +#define __pyx_kp_u_stringsource __pyx_string_tab[51] +#define __pyx_kp_u_with_ulink __pyx_string_tab[52] +#define __pyx_n_u_AT_EDGE_CAPACITY_LIMIT __pyx_string_tab[53] +#define __pyx_n_u_EMBEDFLAGS_DRAWPLANAR __pyx_string_tab[54] +#define __pyx_n_u_EMBEDFLAGS_OUTERPLANAR __pyx_string_tab[55] +#define __pyx_n_u_EMBEDFLAGS_PLANAR __pyx_string_tab[56] +#define __pyx_n_u_EMBEDFLAGS_SEARCHFORK23 __pyx_string_tab[57] +#define __pyx_n_u_EMBEDFLAGS_SEARCHFORK33 __pyx_string_tab[58] +#define __pyx_n_u_EMBEDFLAGS_SEARCHFORK4 __pyx_string_tab[59] +#define __pyx_n_u_FALSE __pyx_string_tab[60] +#define __pyx_n_u_FileName __pyx_string_tab[61] +#define __pyx_n_u_Graph __pyx_string_tab[62] +#define __pyx_n_u_Graph___reduce_cython __pyx_string_tab[63] +#define __pyx_n_u_Graph___setstate_cython __pyx_string_tab[64] +#define __pyx_n_u_Graph_gp_AddEdge __pyx_string_tab[65] +#define __pyx_n_u_Graph_gp_CopyGraph __pyx_string_tab[66] +#define __pyx_n_u_Graph_gp_DeleteEdge __pyx_string_tab[67] +#define __pyx_n_u_Graph_gp_DrawPlanar_RenderToFile __pyx_string_tab[68] +#define __pyx_n_u_Graph_gp_DrawPlanar_RenderToStri __pyx_string_tab[69] +#define __pyx_n_u_Graph_gp_DupGraph __pyx_string_tab[70] +#define __pyx_n_u_Graph_gp_DynamicAddEdge __pyx_string_tab[71] +#define __pyx_n_u_Graph_gp_EdgeInUse __pyx_string_tab[72] +#define __pyx_n_u_Graph_gp_Embed __pyx_string_tab[73] +#define __pyx_n_u_Graph_gp_EnsureEdgeCapacity __pyx_string_tab[74] +#define __pyx_n_u_Graph_gp_ExtendWith_DrawPlanar __pyx_string_tab[75] +#define __pyx_n_u_Graph_gp_ExtendWith_K23Search __pyx_string_tab[76] +#define __pyx_n_u_Graph_gp_ExtendWith_K33Search __pyx_string_tab[77] +#define __pyx_n_u_Graph_gp_ExtendWith_K4Search __pyx_string_tab[78] +#define __pyx_n_u_Graph_gp_ExtendWith_Outerplanari __pyx_string_tab[79] +#define __pyx_n_u_Graph_gp_ExtendWith_Planarity __pyx_string_tab[80] +#define __pyx_n_u_Graph_gp_FindEdge __pyx_string_tab[81] +#define __pyx_n_u_Graph_gp_GetEdgeCapacity __pyx_string_tab[82] +#define __pyx_n_u_Graph_gp_GetFirstEdge __pyx_string_tab[83] +#define __pyx_n_u_Graph_gp_GetN __pyx_string_tab[84] +#define __pyx_n_u_Graph_gp_GetNeighbor __pyx_string_tab[85] +#define __pyx_n_u_Graph_gp_GetNextEdge __pyx_string_tab[86] +#define __pyx_n_u_Graph_gp_GetVertexDegree __pyx_string_tab[87] +#define __pyx_n_u_Graph_gp_InitGraph __pyx_string_tab[88] +#define __pyx_n_u_Graph_gp_IsEdge __pyx_string_tab[89] +#define __pyx_n_u_Graph_gp_IsVertex __pyx_string_tab[90] +#define __pyx_n_u_Graph_gp_LowerBoundEdgeStorage __pyx_string_tab[91] +#define __pyx_n_u_Graph_gp_LowerBoundEdges __pyx_string_tab[92] +#define __pyx_n_u_Graph_gp_LowerBoundVertices __pyx_string_tab[93] +#define __pyx_n_u_Graph_gp_Read __pyx_string_tab[94] +#define __pyx_n_u_Graph_gp_ReinitGraph __pyx_string_tab[95] +#define __pyx_n_u_Graph_gp_TestEmbedResultIntegrit __pyx_string_tab[96] +#define __pyx_n_u_Graph_gp_UpperBoundEdgeStorage __pyx_string_tab[97] +#define __pyx_n_u_Graph_gp_UpperBoundEdges __pyx_string_tab[98] +#define __pyx_n_u_Graph_gp_UpperBoundVertices __pyx_string_tab[99] +#define __pyx_n_u_Graph_gp_Write __pyx_string_tab[100] +#define __pyx_n_u_NONEMBEDDABLE __pyx_string_tab[101] +#define __pyx_n_u_NOTOK __pyx_string_tab[102] +#define __pyx_n_u_OK __pyx_string_tab[103] +#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[104] +#define __pyx_n_u_TRUE __pyx_string_tab[105] +#define __pyx_n_u_WRITE_ADJLIST __pyx_string_tab[106] +#define __pyx_n_u_WRITE_ADJMATRIX __pyx_string_tab[107] +#define __pyx_n_u_WRITE_G6 __pyx_string_tab[108] +#define __pyx_n_u_a __pyx_string_tab[109] +#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[110] +#define __pyx_n_u_check_result __pyx_string_tab[111] +#define __pyx_n_u_cline_in_traceback __pyx_string_tab[112] +#define __pyx_n_u_copy_of_orig_graph __pyx_string_tab[113] +#define __pyx_n_u_e __pyx_string_tab[114] +#define __pyx_n_u_embedFlags __pyx_string_tab[115] +#define __pyx_n_u_embed_result __pyx_string_tab[116] +#define __pyx_n_u_encoded __pyx_string_tab[117] +#define __pyx_n_u_func __pyx_string_tab[118] +#define __pyx_n_u_g __pyx_string_tab[119] +#define __pyx_n_u_getstate __pyx_string_tab[120] +#define __pyx_n_u_gp_AddEdge __pyx_string_tab[121] +#define __pyx_n_u_gp_CopyGraph __pyx_string_tab[122] +#define __pyx_n_u_gp_DeleteEdge __pyx_string_tab[123] +#define __pyx_n_u_gp_DrawPlanar_RenderToFile __pyx_string_tab[124] +#define __pyx_n_u_gp_DrawPlanar_RenderToString __pyx_string_tab[125] +#define __pyx_n_u_gp_DupGraph __pyx_string_tab[126] +#define __pyx_n_u_gp_DynamicAddEdge __pyx_string_tab[127] +#define __pyx_n_u_gp_EdgeInUse __pyx_string_tab[128] +#define __pyx_n_u_gp_Embed __pyx_string_tab[129] +#define __pyx_n_u_gp_EnsureEdgeCapacity __pyx_string_tab[130] +#define __pyx_n_u_gp_ExtendWith_DrawPlanar __pyx_string_tab[131] +#define __pyx_n_u_gp_ExtendWith_K23Search __pyx_string_tab[132] +#define __pyx_n_u_gp_ExtendWith_K33Search __pyx_string_tab[133] +#define __pyx_n_u_gp_ExtendWith_K4Search __pyx_string_tab[134] +#define __pyx_n_u_gp_ExtendWith_Outerplanarity __pyx_string_tab[135] +#define __pyx_n_u_gp_ExtendWith_Planarity __pyx_string_tab[136] +#define __pyx_n_u_gp_FindEdge __pyx_string_tab[137] +#define __pyx_n_u_gp_GetEdgeCapacity __pyx_string_tab[138] +#define __pyx_n_u_gp_GetFirstEdge __pyx_string_tab[139] +#define __pyx_n_u_gp_GetN __pyx_string_tab[140] +#define __pyx_n_u_gp_GetNeighbor __pyx_string_tab[141] +#define __pyx_n_u_gp_GetNextEdge __pyx_string_tab[142] +#define __pyx_n_u_gp_GetVertexDegree __pyx_string_tab[143] +#define __pyx_n_u_gp_InitGraph __pyx_string_tab[144] +#define __pyx_n_u_gp_IsEdge __pyx_string_tab[145] +#define __pyx_n_u_gp_IsVertex __pyx_string_tab[146] +#define __pyx_n_u_gp_LowerBoundEdgeStorage __pyx_string_tab[147] +#define __pyx_n_u_gp_LowerBoundEdges __pyx_string_tab[148] +#define __pyx_n_u_gp_LowerBoundVertices __pyx_string_tab[149] +#define __pyx_n_u_gp_Read __pyx_string_tab[150] +#define __pyx_n_u_gp_ReinitGraph __pyx_string_tab[151] +#define __pyx_n_u_gp_TestEmbedResultIntegrity __pyx_string_tab[152] +#define __pyx_n_u_gp_UpperBoundEdgeStorage __pyx_string_tab[153] +#define __pyx_n_u_gp_UpperBoundEdges __pyx_string_tab[154] +#define __pyx_n_u_gp_UpperBoundVertices __pyx_string_tab[155] +#define __pyx_n_u_gp_Write __pyx_string_tab[156] +#define __pyx_n_u_graphLib __pyx_string_tab[157] +#define __pyx_n_u_infile_name __pyx_string_tab[158] +#define __pyx_n_u_int __pyx_string_tab[159] +#define __pyx_n_u_is_coroutine __pyx_string_tab[160] +#define __pyx_n_u_items __pyx_string_tab[161] +#define __pyx_n_u_m __pyx_string_tab[162] +#define __pyx_n_u_main __pyx_string_tab[163] +#define __pyx_n_u_mode __pyx_string_tab[164] +#define __pyx_n_u_mode_code __pyx_string_tab[165] +#define __pyx_n_u_module __pyx_string_tab[166] +#define __pyx_n_u_n __pyx_string_tab[167] +#define __pyx_n_u_name __pyx_string_tab[168] +#define __pyx_n_u_new_edge_capacity __pyx_string_tab[169] +#define __pyx_n_u_new_graph __pyx_string_tab[170] +#define __pyx_n_u_outfile_name __pyx_string_tab[171] +#define __pyx_n_u_planarity_full __pyx_string_tab[172] +#define __pyx_n_u_planarity_full_graph __pyx_string_tab[173] +#define __pyx_n_u_pop __pyx_string_tab[174] +#define __pyx_n_u_pyx_state __pyx_string_tab[175] +#define __pyx_n_u_qualname __pyx_string_tab[176] +#define __pyx_n_u_reduce __pyx_string_tab[177] +#define __pyx_n_u_reduce_cython __pyx_string_tab[178] +#define __pyx_n_u_reduce_ex __pyx_string_tab[179] +#define __pyx_n_u_renditionString __pyx_string_tab[180] +#define __pyx_n_u_return __pyx_string_tab[181] +#define __pyx_n_u_self __pyx_string_tab[182] +#define __pyx_n_u_set_name __pyx_string_tab[183] +#define __pyx_n_u_setdefault __pyx_string_tab[184] +#define __pyx_n_u_setstate __pyx_string_tab[185] +#define __pyx_n_u_setstate_cython __pyx_string_tab[186] +#define __pyx_n_u_src_graph __pyx_string_tab[187] +#define __pyx_n_u_src_graph_uninit_error __pyx_string_tab[188] +#define __pyx_n_u_string_conversion_error __pyx_string_tab[189] +#define __pyx_n_u_test __pyx_string_tab[190] +#define __pyx_n_u_theFileName __pyx_string_tab[191] +#define __pyx_n_u_theGraph_dup __pyx_string_tab[192] +#define __pyx_n_u_u __pyx_string_tab[193] +#define __pyx_n_u_ulink __pyx_string_tab[194] +#define __pyx_n_u_v __pyx_string_tab[195] +#define __pyx_n_u_values __pyx_string_tab[196] +#define __pyx_n_u_vlink __pyx_string_tab[197] +#define __pyx_kp_b_graphP_graphP_graphP_void_int_gr __pyx_string_tab[198] +#define __pyx_kp_b_iso88591_4_Q_aq_xq_A __pyx_string_tab[199] +#define __pyx_kp_b_iso88591_A_0_A_aq __pyx_string_tab[200] +#define __pyx_kp_b_iso88591_A_0_Q __pyx_string_tab[201] +#define __pyx_kp_b_iso88591_A_1D_Cq_aq __pyx_string_tab[202] +#define __pyx_kp_b_iso88591_A_4_3a_aq __pyx_string_tab[203] +#define __pyx_kp_b_iso88591_A_4_Q_a_y_3a_j_q_A_4xs_Yha_A_c_a __pyx_string_tab[204] +#define __pyx_kp_b_iso88591_A_4q __pyx_string_tab[205] +#define __pyx_kp_b_iso88591_A_4t_Qa_a_8_Qd_a __pyx_string_tab[206] +#define __pyx_kp_b_iso88591_A_4t_Qa_a_Qa_AT_Q __pyx_string_tab[207] +#define __pyx_kp_b_iso88591_A_4t_Qa_a_q_at_q __pyx_string_tab[208] +#define __pyx_kp_b_iso88591_A_4t_q_a_B_1_q_L __pyx_string_tab[209] +#define __pyx_kp_b_iso88591_A_4t_q_as_1_4_1 __pyx_string_tab[210] +#define __pyx_kp_b_iso88591_A_4t_q_as_1_4t_q_as_1_1D_Cq __pyx_string_tab[211] +#define __pyx_kp_b_iso88591_A_6_Bd_1_a_1_6_Bd_1_a_1_Qd_c_7_Q __pyx_string_tab[212] +#define __pyx_kp_b_iso88591_A_6_Bd_1_a_1_6_Bd_1_a_1_at_s_G3a __pyx_string_tab[213] +#define __pyx_kp_b_iso88591_A_AT_S_aq __pyx_string_tab[214] +#define __pyx_kp_b_iso88591_A_Cq_aq __pyx_string_tab[215] +#define __pyx_kp_b_iso88591_A_Q_0_BSSVVW_aq_A_a __pyx_string_tab[216] +#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[217] +#define __pyx_kp_b_iso88591_A_X_uCq_5_1_s_4q_A_31A_q_9AT_S_a __pyx_string_tab[218] +#define __pyx_kp_b_iso88591_A_l_MSPQ_a_1 __pyx_string_tab[219] +#define __pyx_kp_b_iso88591_A_q_A __pyx_string_tab[220] +#define __pyx_kp_b_iso88591_A_q_A_81D_Jc_aq __pyx_string_tab[221] +#define __pyx_kp_b_iso88591_A_q_at_Cq_a_EQa __pyx_string_tab[222] +#define __pyx_kp_b_iso88591_A_s_D_r_4q __pyx_string_tab[223] +#define __pyx_kp_b_iso88591_A_s_t1_r_d_at_q __pyx_string_tab[224] +#define __pyx_kp_b_iso88591_Q __pyx_string_tab[225] +#define __pyx_kp_b_iso88591_Q_4L_Q_1_Qa_uA_1_a_q __pyx_string_tab[226] +#define __pyx_kp_b_iso88591_YYZ_1_L_2_a_3d_s_aq_q __pyx_string_tab[227] +#define __pyx_kp_b_iso88591_y_3d_s_aq_q __pyx_string_tab[228] #define __pyx_int_0 __pyx_number_tab[0] /* #### Code section: module_state_clear ### */ #if CYTHON_USE_MODULE_STATE @@ -2829,8 +2835,8 @@ static CYTHON_SMALL_CODE int __pyx_m_clear(PyObject *m) { #endif Py_CLEAR(clear_module_state->__pyx_ptype_9planarity_4full_5graph_Graph); Py_CLEAR(clear_module_state->__pyx_type_9planarity_4full_5graph_Graph); - for (int i=0; i<37; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<225; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } + for (int i=0; i<38; ++i) { Py_CLEAR(clear_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<229; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } for (int i=0; i<1; ++i) { Py_CLEAR(clear_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_clear_contents ### */ /* CommonTypesMetaclass.module_state_clear */ @@ -2856,8 +2862,8 @@ static CYTHON_SMALL_CODE int __pyx_m_traverse(PyObject *m, visitproc visit, void __Pyx_VISIT_CONST(traverse_module_state->__pyx_empty_unicode); Py_VISIT(traverse_module_state->__pyx_ptype_9planarity_4full_5graph_Graph); Py_VISIT(traverse_module_state->__pyx_type_9planarity_4full_5graph_Graph); - for (int i=0; i<37; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } - for (int i=0; i<225; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } + for (int i=0; i<38; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_codeobj_tab[i]); } + for (int i=0; i<229; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } for (int i=0; i<1; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_number_tab[i]); } /* #### Code section: module_state_traverse_contents ### */ /* CommonTypesMetaclass.module_state_traverse */ @@ -5217,7 +5223,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_22gp_AddEdge(struct __p * ) * if graphLib.gp_AddEdge(self._theGraph, u, ulink, v, vlink) != OK: # <<<<<<<<<<<<<< * raise RuntimeError( - * f"Unable to add edge (u, v) = ({u}, {v}) with ulink = {ulink} " + * f"gp_AddEdge() failed: unable to add edge (u, v) = ({u}, {v}) " */ __pyx_t_8 = __pyx_f_9planarity_4full_8graphLib_gp_AddEdge(__pyx_v_self->_theGraph, __pyx_v_u, __pyx_v_ulink, __pyx_v_v, __pyx_v_vlink); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 127, __pyx_L1_error) __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 127, __pyx_L1_error) @@ -5235,35 +5241,35 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_22gp_AddEdge(struct __p * ) * if graphLib.gp_AddEdge(self._theGraph, u, ulink, v, vlink) != OK: * raise RuntimeError( # <<<<<<<<<<<<<< - * f"Unable to add edge (u, v) = ({u}, {v}) with ulink = {ulink} " - * f"and vlink = {vlink}." + * f"gp_AddEdge() failed: unable to add edge (u, v) = ({u}, {v}) " + * f"with ulink = {ulink} and vlink = {vlink}." */ __pyx_t_4 = NULL; /* "planarity/full/graph.pyx":129 * if graphLib.gp_AddEdge(self._theGraph, u, ulink, v, vlink) != OK: * raise RuntimeError( - * f"Unable to add edge (u, v) = ({u}, {v}) with ulink = {ulink} " # <<<<<<<<<<<<<< - * f"and vlink = {vlink}." + * f"gp_AddEdge() failed: unable to add edge (u, v) = ({u}, {v}) " # <<<<<<<<<<<<<< + * f"with ulink = {ulink} and vlink = {vlink}." * ) */ __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_u, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_v, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_9 = __Pyx_PyUnicode_From_int(__pyx_v_ulink, 0, ' ', 'd'); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); /* "planarity/full/graph.pyx":130 * raise RuntimeError( - * f"Unable to add edge (u, v) = ({u}, {v}) with ulink = {ulink} " - * f"and vlink = {vlink}." # <<<<<<<<<<<<<< + * f"gp_AddEdge() failed: unable to add edge (u, v) = ({u}, {v}) " + * f"with ulink = {ulink} and vlink = {vlink}." # <<<<<<<<<<<<<< * ) * */ + __pyx_t_9 = __Pyx_PyUnicode_From_int(__pyx_v_ulink, 0, ' ', 'd'); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyUnicode_From_int(__pyx_v_vlink, 0, ' ', 'd'); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); - __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_Unable_to_add_edge_u_v; + __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_gp_AddEdge_failed_unable_to_add; __pyx_t_11[1] = __pyx_t_2; __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__4; __pyx_t_11[3] = __pyx_t_3; @@ -5276,11 +5282,11 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_22gp_AddEdge(struct __p /* "planarity/full/graph.pyx":129 * if graphLib.gp_AddEdge(self._theGraph, u, ulink, v, vlink) != OK: * raise RuntimeError( - * f"Unable to add edge (u, v) = ({u}, {v}) with ulink = {ulink} " # <<<<<<<<<<<<<< - * f"and vlink = {vlink}." + * f"gp_AddEdge() failed: unable to add edge (u, v) = ({u}, {v}) " # <<<<<<<<<<<<<< + * f"with ulink = {ulink} and vlink = {vlink}." * ) */ - __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 9, 29 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 1, 127); + __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 9, 50 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 1, 127); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -5305,7 +5311,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_22gp_AddEdge(struct __p * ) * if graphLib.gp_AddEdge(self._theGraph, u, ulink, v, vlink) != OK: # <<<<<<<<<<<<<< * raise RuntimeError( - * f"Unable to add edge (u, v) = ({u}, {v}) with ulink = {ulink} " + * f"gp_AddEdge() failed: unable to add edge (u, v) = ({u}, {v}) " */ } @@ -5337,6 +5343,390 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_22gp_AddEdge(struct __p } /* "planarity/full/graph.pyx":133 + * ) + * + * def gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink): # <<<<<<<<<<<<<< + * if ulink != 0 and ulink != 1: + * raise RuntimeError( +*/ + +/* Python wrapper */ +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DynamicAddEdge(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_24gp_DynamicAddEdge, "Graph.gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_25gp_DynamicAddEdge = {"gp_DynamicAddEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DynamicAddEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_24gp_DynamicAddEdge}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DynamicAddEdge(PyObject *__pyx_v_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + int __pyx_v_u; + int __pyx_v_ulink; + int __pyx_v_v; + int __pyx_v_vlink; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + PyObject* values[4] = {0,0,0,0}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("gp_DynamicAddEdge (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_u,&__pyx_mstate_global->__pyx_n_u_ulink,&__pyx_mstate_global->__pyx_n_u_v,&__pyx_mstate_global->__pyx_n_u_vlink,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 133, __pyx_L3_error) + if (__pyx_kwds_len > 0) { + switch (__pyx_nargs) { + case 4: + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 133, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 3: + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 133, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 2: + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 133, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 1: + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 133, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_DynamicAddEdge", 0) < (0)) __PYX_ERR(0, 133, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 4; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_DynamicAddEdge", 1, 4, 4, i); __PYX_ERR(0, 133, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 133, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 133, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(0, 133, __pyx_L3_error) + values[3] = __Pyx_ArgRef_FASTCALL(__pyx_args, 3); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[3])) __PYX_ERR(0, 133, __pyx_L3_error) + } + __pyx_v_u = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_u == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L3_error) + __pyx_v_ulink = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_ulink == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L3_error) + __pyx_v_v = __Pyx_PyLong_As_int(values[2]); if (unlikely((__pyx_v_v == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L3_error) + __pyx_v_vlink = __Pyx_PyLong_As_int(values[3]); if (unlikely((__pyx_v_vlink == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("gp_DynamicAddEdge", 1, 4, 4, __pyx_nargs); __PYX_ERR(0, 133, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_AddTraceback("planarity.full.graph.Graph.gp_DynamicAddEdge", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_24gp_DynamicAddEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_u, __pyx_v_ulink, __pyx_v_v, __pyx_v_vlink); + + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DynamicAddEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_u, int __pyx_v_ulink, int __pyx_v_v, int __pyx_v_vlink) { + 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[3]; + PyObject *__pyx_t_6 = NULL; + size_t __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11[9]; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("gp_DynamicAddEdge", 0); + + /* "planarity/full/graph.pyx":134 + * + * def gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink): + * if ulink != 0 and ulink != 1: # <<<<<<<<<<<<<< + * raise RuntimeError( + * f"Invalid link index for ulink: '{ulink}'." +*/ + switch (__pyx_v_ulink) { + case 0: + case 1: + __pyx_t_1 = 0; + break; + default: + __pyx_t_1 = 1; + break; + } + if (unlikely(__pyx_t_1)) { + + /* "planarity/full/graph.pyx":135 + * def gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink): + * if ulink != 0 and ulink != 1: + * raise RuntimeError( # <<<<<<<<<<<<<< + * f"Invalid link index for ulink: '{ulink}'." + * ) +*/ + __pyx_t_3 = NULL; + + /* "planarity/full/graph.pyx":136 + * if ulink != 0 and ulink != 1: + * raise RuntimeError( + * f"Invalid link index for ulink: '{ulink}'." # <<<<<<<<<<<<<< + * ) + * if vlink != 0 and vlink != 1: +*/ + __pyx_t_4 = __Pyx_PyUnicode_From_int(__pyx_v_ulink, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_link_index_for_ulink; + __pyx_t_5[1] = __pyx_t_4; + __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__3; + __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 31 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4) + 2, 127); + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 135, __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(0, 135, __pyx_L1_error) + + /* "planarity/full/graph.pyx":134 + * + * def gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink): + * if ulink != 0 and ulink != 1: # <<<<<<<<<<<<<< + * raise RuntimeError( + * f"Invalid link index for ulink: '{ulink}'." +*/ + } + + /* "planarity/full/graph.pyx":138 + * f"Invalid link index for ulink: '{ulink}'." + * ) + * if vlink != 0 and vlink != 1: # <<<<<<<<<<<<<< + * raise RuntimeError( + * f"Invalid link index for vlink: '{vlink}'." +*/ + switch (__pyx_v_vlink) { + case 0: + case 1: + __pyx_t_1 = 0; + break; + default: + __pyx_t_1 = 1; + break; + } + if (unlikely(__pyx_t_1)) { + + /* "planarity/full/graph.pyx":139 + * ) + * if vlink != 0 and vlink != 1: + * raise RuntimeError( # <<<<<<<<<<<<<< + * f"Invalid link index for vlink: '{vlink}'." + * ) +*/ + __pyx_t_6 = NULL; + + /* "planarity/full/graph.pyx":140 + * if vlink != 0 and vlink != 1: + * raise RuntimeError( + * f"Invalid link index for vlink: '{vlink}'." # <<<<<<<<<<<<<< + * ) + * if graphLib.gp_DynamicAddEdge(self._theGraph, u, ulink, v, vlink) != OK: +*/ + __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_vlink, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_link_index_for_vlink; + __pyx_t_5[1] = __pyx_t_3; + __pyx_t_5[2] = __pyx_mstate_global->__pyx_kp_u__3; + __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, 31 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 2, 127); + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __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(0, 139, __pyx_L1_error) + + /* "planarity/full/graph.pyx":138 + * f"Invalid link index for ulink: '{ulink}'." + * ) + * if vlink != 0 and vlink != 1: # <<<<<<<<<<<<<< + * raise RuntimeError( + * f"Invalid link index for vlink: '{vlink}'." +*/ + } + + /* "planarity/full/graph.pyx":142 + * f"Invalid link index for vlink: '{vlink}'." + * ) + * if graphLib.gp_DynamicAddEdge(self._theGraph, u, ulink, v, vlink) != OK: # <<<<<<<<<<<<<< + * raise RuntimeError( + * f"gp_DynamicAddEdge() failed: unable to add edge (u, v) = " +*/ + __pyx_t_8 = __pyx_f_9planarity_4full_8graphLib_gp_DynamicAddEdge(__pyx_v_self->_theGraph, __pyx_v_u, __pyx_v_ulink, __pyx_v_v, __pyx_v_vlink); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __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(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_t_1)) { + + /* "planarity/full/graph.pyx":143 + * ) + * if graphLib.gp_DynamicAddEdge(self._theGraph, u, ulink, v, vlink) != OK: + * raise RuntimeError( # <<<<<<<<<<<<<< + * f"gp_DynamicAddEdge() failed: unable to add edge (u, v) = " + * f"({u}, {v}) with ulink = {ulink} and vlink = {vlink}." +*/ + __pyx_t_4 = NULL; + + /* "planarity/full/graph.pyx":145 + * raise RuntimeError( + * f"gp_DynamicAddEdge() failed: unable to add edge (u, v) = " + * f"({u}, {v}) with ulink = {ulink} and vlink = {vlink}." # <<<<<<<<<<<<<< + * ) + * +*/ + __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_u, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyUnicode_From_int(__pyx_v_v, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyUnicode_From_int(__pyx_v_ulink, 0, ' ', 'd'); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = __Pyx_PyUnicode_From_int(__pyx_v_vlink, 0, ' ', 'd'); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11[0] = __pyx_mstate_global->__pyx_kp_u_gp_DynamicAddEdge_failed_unable; + __pyx_t_11[1] = __pyx_t_2; + __pyx_t_11[2] = __pyx_mstate_global->__pyx_kp_u__4; + __pyx_t_11[3] = __pyx_t_3; + __pyx_t_11[4] = __pyx_mstate_global->__pyx_kp_u_with_ulink; + __pyx_t_11[5] = __pyx_t_9; + __pyx_t_11[6] = __pyx_mstate_global->__pyx_kp_u_and_vlink; + __pyx_t_11[7] = __pyx_t_10; + __pyx_t_11[8] = __pyx_mstate_global->__pyx_kp_u_; + + /* "planarity/full/graph.pyx":144 + * if graphLib.gp_DynamicAddEdge(self._theGraph, u, ulink, v, vlink) != OK: + * raise RuntimeError( + * f"gp_DynamicAddEdge() failed: unable to add edge (u, v) = " # <<<<<<<<<<<<<< + * f"({u}, {v}) with ulink = {ulink} and vlink = {vlink}." + * ) +*/ + __pyx_t_12 = __Pyx_PyUnicode_Join(__pyx_t_11, 9, 57 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3) + 15 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_9) + 13 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10) + 1, 127); + if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_12}; + __pyx_t_6 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 143, __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(0, 143, __pyx_L1_error) + + /* "planarity/full/graph.pyx":142 + * f"Invalid link index for vlink: '{vlink}'." + * ) + * if graphLib.gp_DynamicAddEdge(self._theGraph, u, ulink, v, vlink) != OK: # <<<<<<<<<<<<<< + * raise RuntimeError( + * f"gp_DynamicAddEdge() failed: unable to add edge (u, v) = " +*/ + } + + /* "planarity/full/graph.pyx":133 + * ) + * + * def gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink): # <<<<<<<<<<<<<< + * if ulink != 0 and ulink != 1: + * raise RuntimeError( +*/ + + /* 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_6); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("planarity.full.graph.Graph.gp_DynamicAddEdge", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "planarity/full/graph.pyx":148 * ) * * def gp_DeleteEdge(self, int e): # <<<<<<<<<<<<<< @@ -5345,16 +5735,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_22gp_AddEdge(struct __p */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DeleteEdge(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_27gp_DeleteEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_24gp_DeleteEdge, "Graph.gp_DeleteEdge(self, int e)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_25gp_DeleteEdge = {"gp_DeleteEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DeleteEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_24gp_DeleteEdge}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DeleteEdge(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_26gp_DeleteEdge, "Graph.gp_DeleteEdge(self, int e)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_27gp_DeleteEdge = {"gp_DeleteEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_27gp_DeleteEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_26gp_DeleteEdge}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_27gp_DeleteEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -5384,32 +5774,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_e,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 133, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 148, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 148, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_DeleteEdge", 0) < (0)) __PYX_ERR(0, 133, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_DeleteEdge", 0) < (0)) __PYX_ERR(0, 148, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_DeleteEdge", 1, 1, 1, i); __PYX_ERR(0, 133, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_DeleteEdge", 1, 1, 1, i); __PYX_ERR(0, 148, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 133, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 148, __pyx_L3_error) } - __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 133, __pyx_L3_error) + __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 148, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_DeleteEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 133, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_DeleteEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 148, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -5420,7 +5810,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_26gp_DeleteEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -5430,7 +5820,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_26gp_DeleteEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -5447,7 +5837,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_DeleteEdge", 0); - /* "planarity/full/graph.pyx":134 + /* "planarity/full/graph.pyx":149 * * def gp_DeleteEdge(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -5456,7 +5846,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct */ __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; { @@ -5464,15 +5854,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_IsEdge, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 134, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 134, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (!__pyx_t_5); if (unlikely(__pyx_t_6)) { - /* "planarity/full/graph.pyx":135 + /* "planarity/full/graph.pyx":150 * def gp_DeleteEdge(self, int e): * if not self.gp_IsEdge(e): * raise RuntimeError( # <<<<<<<<<<<<<< @@ -5481,20 +5871,20 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct */ __pyx_t_3 = NULL; - /* "planarity/full/graph.pyx":136 + /* "planarity/full/graph.pyx":151 * if not self.gp_IsEdge(e): * raise RuntimeError( * f"gp_DeleteEdge() failed: invalid edge '{e}'." # <<<<<<<<<<<<<< * ) * */ - __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_gp_DeleteEdge_failed_invalid_edg; __pyx_t_7[1] = __pyx_t_2; __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__3; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 3, 38 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2, 127); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 136, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = 1; @@ -5503,14 +5893,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __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(0, 135, __pyx_L1_error) + __PYX_ERR(0, 150, __pyx_L1_error) - /* "planarity/full/graph.pyx":134 + /* "planarity/full/graph.pyx":149 * * def gp_DeleteEdge(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -5519,22 +5909,22 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct */ } - /* "planarity/full/graph.pyx":139 + /* "planarity/full/graph.pyx":154 * ) * * return graphLib.gp_DeleteEdge(self._theGraph, e) # <<<<<<<<<<<<<< * - * def gp_LowerBoundEdgeStorage(self): + * def gp_LowerBoundEdges(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 139, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) + __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 154, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":133 + /* "planarity/full/graph.pyx":148 * ) * * def gp_DeleteEdge(self, int e): # <<<<<<<<<<<<<< @@ -5556,25 +5946,25 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_24gp_DeleteEdge(struct return __pyx_r; } -/* "planarity/full/graph.pyx":141 +/* "planarity/full/graph.pyx":156 * return graphLib.gp_DeleteEdge(self._theGraph, e) * - * def gp_LowerBoundEdgeStorage(self): # <<<<<<<<<<<<<< - * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) + * def gp_LowerBoundEdges(self): # <<<<<<<<<<<<<< + * return graphLib.gp_LowerBoundEdges(self._theGraph) * */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_27gp_LowerBoundEdgeStorage(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_29gp_LowerBoundEdges(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStorage, "Graph.gp_LowerBoundEdgeStorage(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_27gp_LowerBoundEdgeStorage = {"gp_LowerBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_27gp_LowerBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStorage}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_27gp_LowerBoundEdgeStorage(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_28gp_LowerBoundEdges, "Graph.gp_LowerBoundEdges(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_29gp_LowerBoundEdges = {"gp_LowerBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_29gp_LowerBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_28gp_LowerBoundEdges}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_29gp_LowerBoundEdges(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -5587,7 +5977,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("gp_LowerBoundEdgeStorage (wrapper)", 0); + __Pyx_RefNannySetupContext("gp_LowerBoundEdges (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -5596,18 +5986,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_LowerBoundEdgeStorage", 1, 0, 0, __pyx_nargs); return NULL; } + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_LowerBoundEdges", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_LowerBoundEdgeStorage", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStorage(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_LowerBoundEdges", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_28gp_LowerBoundEdges(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_28gp_LowerBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -5615,35 +6005,35 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStor int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("gp_LowerBoundEdgeStorage", 0); + __Pyx_RefNannySetupContext("gp_LowerBoundEdges", 0); - /* "planarity/full/graph.pyx":142 + /* "planarity/full/graph.pyx":157 * - * def gp_LowerBoundEdgeStorage(self): - * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) # <<<<<<<<<<<<<< + * def gp_LowerBoundEdges(self): + * return graphLib.gp_LowerBoundEdges(self._theGraph) # <<<<<<<<<<<<<< * - * def gp_UpperBoundEdgeStorage(self): + * def gp_UpperBoundEdges(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 142, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 157, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":141 + /* "planarity/full/graph.pyx":156 * return graphLib.gp_DeleteEdge(self._theGraph, e) * - * def gp_LowerBoundEdgeStorage(self): # <<<<<<<<<<<<<< - * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) + * def gp_LowerBoundEdges(self): # <<<<<<<<<<<<<< + * return graphLib.gp_LowerBoundEdges(self._theGraph) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("planarity.full.graph.Graph.gp_LowerBoundEdgeStorage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("planarity.full.graph.Graph.gp_LowerBoundEdges", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); @@ -5651,25 +6041,25 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStor return __pyx_r; } -/* "planarity/full/graph.pyx":144 - * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) +/* "planarity/full/graph.pyx":159 + * return graphLib.gp_LowerBoundEdges(self._theGraph) * - * def gp_UpperBoundEdgeStorage(self): # <<<<<<<<<<<<<< - * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) + * def gp_UpperBoundEdges(self): # <<<<<<<<<<<<<< + * return graphLib.gp_UpperBoundEdges(self._theGraph) * */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_29gp_UpperBoundEdgeStorage(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_31gp_UpperBoundEdges(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStorage, "Graph.gp_UpperBoundEdgeStorage(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_29gp_UpperBoundEdgeStorage = {"gp_UpperBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_29gp_UpperBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStorage}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_29gp_UpperBoundEdgeStorage(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_30gp_UpperBoundEdges, "Graph.gp_UpperBoundEdges(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_31gp_UpperBoundEdges = {"gp_UpperBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_31gp_UpperBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_30gp_UpperBoundEdges}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_31gp_UpperBoundEdges(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -5682,7 +6072,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("gp_UpperBoundEdgeStorage (wrapper)", 0); + __Pyx_RefNannySetupContext("gp_UpperBoundEdges (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -5691,18 +6081,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_UpperBoundEdgeStorage", 1, 0, 0, __pyx_nargs); return NULL; } + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_UpperBoundEdges", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_UpperBoundEdgeStorage", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStorage(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_UpperBoundEdges", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_30gp_UpperBoundEdges(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_UpperBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -5710,35 +6100,35 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStor int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("gp_UpperBoundEdgeStorage", 0); + __Pyx_RefNannySetupContext("gp_UpperBoundEdges", 0); - /* "planarity/full/graph.pyx":145 + /* "planarity/full/graph.pyx":160 * - * def gp_UpperBoundEdgeStorage(self): - * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) # <<<<<<<<<<<<<< + * def gp_UpperBoundEdges(self): + * return graphLib.gp_UpperBoundEdges(self._theGraph) # <<<<<<<<<<<<<< * * def gp_IsEdge(self, int e): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 145, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":144 - * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) + /* "planarity/full/graph.pyx":159 + * return graphLib.gp_LowerBoundEdges(self._theGraph) * - * def gp_UpperBoundEdgeStorage(self): # <<<<<<<<<<<<<< - * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) + * def gp_UpperBoundEdges(self): # <<<<<<<<<<<<<< + * return graphLib.gp_UpperBoundEdges(self._theGraph) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("planarity.full.graph.Graph.gp_UpperBoundEdgeStorage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("planarity.full.graph.Graph.gp_UpperBoundEdges", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); @@ -5746,8 +6136,8 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStor return __pyx_r; } -/* "planarity/full/graph.pyx":147 - * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) +/* "planarity/full/graph.pyx":162 + * return graphLib.gp_UpperBoundEdges(self._theGraph) * * def gp_IsEdge(self, int e): # <<<<<<<<<<<<<< * return ( @@ -5755,16 +6145,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStor */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_31gp_IsEdge(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_33gp_IsEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_30gp_IsEdge, "Graph.gp_IsEdge(self, int e)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_31gp_IsEdge = {"gp_IsEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_31gp_IsEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_30gp_IsEdge}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_31gp_IsEdge(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_32gp_IsEdge, "Graph.gp_IsEdge(self, int e)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_33gp_IsEdge = {"gp_IsEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_33gp_IsEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_32gp_IsEdge}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_33gp_IsEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -5794,32 +6184,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_e,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 147, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 162, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 162, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_IsEdge", 0) < (0)) __PYX_ERR(0, 147, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_IsEdge", 0) < (0)) __PYX_ERR(0, 162, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_IsEdge", 1, 1, 1, i); __PYX_ERR(0, 147, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_IsEdge", 1, 1, 1, i); __PYX_ERR(0, 162, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 147, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 162, __pyx_L3_error) } - __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 147, __pyx_L3_error) + __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 162, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_IsEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 147, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_IsEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 162, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -5830,7 +6220,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_32gp_IsEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -5840,7 +6230,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_IsEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -5855,7 +6245,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_IsEdge", 0); - /* "planarity/full/graph.pyx":148 + /* "planarity/full/graph.pyx":163 * * def gp_IsEdge(self, int e): * return ( # <<<<<<<<<<<<<< @@ -5864,14 +6254,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py */ __Pyx_XDECREF(__pyx_r); - /* "planarity/full/graph.pyx":149 + /* "planarity/full/graph.pyx":164 * def gp_IsEdge(self, int e): * return ( * (e >= self.gp_LowerBoundEdgeStorage()) and # <<<<<<<<<<<<<< * (e < self.gp_UpperBoundEdgeStorage()) and * graphLib.gp_IsEdge(self._theGraph, e) */ - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_4); @@ -5880,13 +6270,13 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_LowerBoundEdgeStorage, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 149, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 149, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 164, __pyx_L1_error) if (__pyx_t_6) { __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { @@ -5896,14 +6286,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py goto __pyx_L3_bool_binop_done; } - /* "planarity/full/graph.pyx":150 + /* "planarity/full/graph.pyx":165 * return ( * (e >= self.gp_LowerBoundEdgeStorage()) and * (e < self.gp_UpperBoundEdgeStorage()) and # <<<<<<<<<<<<<< * graphLib.gp_IsEdge(self._theGraph, e) * ) */ - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); @@ -5912,13 +6302,13 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_UpperBoundEdgeStorage, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 150, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 150, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 165, __pyx_L1_error) if (__pyx_t_6) { __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { @@ -5928,15 +6318,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py goto __pyx_L3_bool_binop_done; } - /* "planarity/full/graph.pyx":151 + /* "planarity/full/graph.pyx":166 * (e >= self.gp_LowerBoundEdgeStorage()) and * (e < self.gp_UpperBoundEdgeStorage()) and * graphLib.gp_IsEdge(self._theGraph, e) # <<<<<<<<<<<<<< * ) * */ - __pyx_t_7 = __pyx_f_9planarity_4full_8graphLib_gp_IsEdge(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 151, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) + __pyx_t_7 = __pyx_f_9planarity_4full_8graphLib_gp_IsEdge(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; @@ -5945,8 +6335,8 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":147 - * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) + /* "planarity/full/graph.pyx":162 + * return graphLib.gp_UpperBoundEdges(self._theGraph) * * def gp_IsEdge(self, int e): # <<<<<<<<<<<<<< * return ( @@ -5967,7 +6357,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py return __pyx_r; } -/* "planarity/full/graph.pyx":154 +/* "planarity/full/graph.pyx":169 * ) * * def gp_EdgeInUse(self, int e): # <<<<<<<<<<<<<< @@ -5976,16 +6366,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_30gp_IsEdge(struct __py */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_33gp_EdgeInUse(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_35gp_EdgeInUse(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_32gp_EdgeInUse, "Graph.gp_EdgeInUse(self, int e)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_33gp_EdgeInUse = {"gp_EdgeInUse", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_33gp_EdgeInUse, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_32gp_EdgeInUse}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_33gp_EdgeInUse(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_34gp_EdgeInUse, "Graph.gp_EdgeInUse(self, int e)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_35gp_EdgeInUse = {"gp_EdgeInUse", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_35gp_EdgeInUse, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_34gp_EdgeInUse}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_35gp_EdgeInUse(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6015,32 +6405,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_e,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 154, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 169, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 169, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_EdgeInUse", 0) < (0)) __PYX_ERR(0, 154, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_EdgeInUse", 0) < (0)) __PYX_ERR(0, 169, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_EdgeInUse", 1, 1, 1, i); __PYX_ERR(0, 154, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_EdgeInUse", 1, 1, 1, i); __PYX_ERR(0, 169, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 154, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 169, __pyx_L3_error) } - __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 154, __pyx_L3_error) + __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 169, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_EdgeInUse", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 154, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_EdgeInUse", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 169, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6051,7 +6441,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_34gp_EdgeInUse(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -6061,7 +6451,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_34gp_EdgeInUse(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -6078,7 +6468,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct _ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_EdgeInUse", 0); - /* "planarity/full/graph.pyx":155 + /* "planarity/full/graph.pyx":170 * * def gp_EdgeInUse(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -6087,7 +6477,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct _ */ __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 155, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; { @@ -6095,15 +6485,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct _ __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_IsEdge, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 155, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (!__pyx_t_5); if (unlikely(__pyx_t_6)) { - /* "planarity/full/graph.pyx":156 + /* "planarity/full/graph.pyx":171 * def gp_EdgeInUse(self, int e): * if not self.gp_IsEdge(e): * raise RuntimeError( # <<<<<<<<<<<<<< @@ -6112,20 +6502,20 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct _ */ __pyx_t_3 = NULL; - /* "planarity/full/graph.pyx":157 + /* "planarity/full/graph.pyx":172 * if not self.gp_IsEdge(e): * raise RuntimeError( * f"gp_EdgeInUse() failed: invalid edge index '{e}'." # <<<<<<<<<<<<<< * ) * */ - __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_gp_EdgeInUse_failed_invalid_edge; __pyx_t_7[1] = __pyx_t_2; __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__3; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 3, 43 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2, 127); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 157, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = 1; @@ -6134,14 +6524,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct _ __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 171, __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(0, 156, __pyx_L1_error) + __PYX_ERR(0, 171, __pyx_L1_error) - /* "planarity/full/graph.pyx":155 + /* "planarity/full/graph.pyx":170 * * def gp_EdgeInUse(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -6150,22 +6540,22 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct _ */ } - /* "planarity/full/graph.pyx":160 + /* "planarity/full/graph.pyx":175 * ) * * return graphLib.gp_EdgeInUse(self._theGraph, e) # <<<<<<<<<<<<<< * - * def gp_LowerBoundEdges(self): + * def gp_LowerBoundEdgeStorage(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error) + __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 175, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":154 + /* "planarity/full/graph.pyx":169 * ) * * def gp_EdgeInUse(self, int e): # <<<<<<<<<<<<<< @@ -6187,25 +6577,25 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_32gp_EdgeInUse(struct _ return __pyx_r; } -/* "planarity/full/graph.pyx":162 +/* "planarity/full/graph.pyx":177 * return graphLib.gp_EdgeInUse(self._theGraph, e) * - * def gp_LowerBoundEdges(self): # <<<<<<<<<<<<<< - * return graphLib.gp_LowerBoundEdges(self._theGraph) + * def gp_LowerBoundEdgeStorage(self): # <<<<<<<<<<<<<< + * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) * */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_35gp_LowerBoundEdges(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_37gp_LowerBoundEdgeStorage(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges, "Graph.gp_LowerBoundEdges(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_35gp_LowerBoundEdges = {"gp_LowerBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_35gp_LowerBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_35gp_LowerBoundEdges(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_36gp_LowerBoundEdgeStorage, "Graph.gp_LowerBoundEdgeStorage(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_37gp_LowerBoundEdgeStorage = {"gp_LowerBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_37gp_LowerBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_36gp_LowerBoundEdgeStorage}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_37gp_LowerBoundEdgeStorage(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6218,7 +6608,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("gp_LowerBoundEdges (wrapper)", 0); + __Pyx_RefNannySetupContext("gp_LowerBoundEdgeStorage (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -6227,18 +6617,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_LowerBoundEdges", 1, 0, 0, __pyx_nargs); return NULL; } + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_LowerBoundEdgeStorage", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_LowerBoundEdges", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_LowerBoundEdgeStorage", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_36gp_LowerBoundEdgeStorage(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_36gp_LowerBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -6246,35 +6636,35 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges(st int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("gp_LowerBoundEdges", 0); + __Pyx_RefNannySetupContext("gp_LowerBoundEdgeStorage", 0); - /* "planarity/full/graph.pyx":163 + /* "planarity/full/graph.pyx":178 * - * def gp_LowerBoundEdges(self): - * return graphLib.gp_LowerBoundEdges(self._theGraph) # <<<<<<<<<<<<<< + * def gp_LowerBoundEdgeStorage(self): + * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) # <<<<<<<<<<<<<< * - * def gp_UpperBoundEdges(self): + * def gp_UpperBoundEdgeStorage(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 163, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 163, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 178, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":162 + /* "planarity/full/graph.pyx":177 * return graphLib.gp_EdgeInUse(self._theGraph, e) * - * def gp_LowerBoundEdges(self): # <<<<<<<<<<<<<< - * return graphLib.gp_LowerBoundEdges(self._theGraph) + * def gp_LowerBoundEdgeStorage(self): # <<<<<<<<<<<<<< + * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("planarity.full.graph.Graph.gp_LowerBoundEdges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("planarity.full.graph.Graph.gp_LowerBoundEdgeStorage", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); @@ -6282,25 +6672,25 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges(st return __pyx_r; } -/* "planarity/full/graph.pyx":165 - * return graphLib.gp_LowerBoundEdges(self._theGraph) +/* "planarity/full/graph.pyx":180 + * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) * - * def gp_UpperBoundEdges(self): # <<<<<<<<<<<<<< - * return graphLib.gp_UpperBoundEdges(self._theGraph) + * def gp_UpperBoundEdgeStorage(self): # <<<<<<<<<<<<<< + * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) * */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_37gp_UpperBoundEdges(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_39gp_UpperBoundEdgeStorage(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges, "Graph.gp_UpperBoundEdges(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_37gp_UpperBoundEdges = {"gp_UpperBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_37gp_UpperBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_37gp_UpperBoundEdges(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_38gp_UpperBoundEdgeStorage, "Graph.gp_UpperBoundEdgeStorage(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_39gp_UpperBoundEdgeStorage = {"gp_UpperBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_39gp_UpperBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_38gp_UpperBoundEdgeStorage}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_39gp_UpperBoundEdgeStorage(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6313,7 +6703,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds CYTHON_UNUSED PyObject *const *__pyx_kwvalues; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("gp_UpperBoundEdges (wrapper)", 0); + __Pyx_RefNannySetupContext("gp_UpperBoundEdgeStorage (wrapper)", 0); #if !CYTHON_METH_FASTCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -6322,18 +6712,18 @@ PyObject *__pyx_args, PyObject *__pyx_kwds #endif #endif __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_UpperBoundEdges", 1, 0, 0, __pyx_nargs); return NULL; } + if (unlikely(__pyx_nargs > 0)) { __Pyx_RaiseArgtupleInvalid("gp_UpperBoundEdgeStorage", 1, 0, 0, __pyx_nargs); return NULL; } const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; - if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_UpperBoundEdges", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_UpperBoundEdgeStorage", __pyx_kwds); return NULL;} + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_38gp_UpperBoundEdgeStorage(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_UpperBoundEdgeStorage(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -6341,35 +6731,35 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges(st int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("gp_UpperBoundEdges", 0); + __Pyx_RefNannySetupContext("gp_UpperBoundEdgeStorage", 0); - /* "planarity/full/graph.pyx":166 + /* "planarity/full/graph.pyx":181 * - * def gp_UpperBoundEdges(self): - * return graphLib.gp_UpperBoundEdges(self._theGraph) # <<<<<<<<<<<<<< + * def gp_UpperBoundEdgeStorage(self): + * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) # <<<<<<<<<<<<<< * * def gp_GetNextEdge(self, int e): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":165 - * return graphLib.gp_LowerBoundEdges(self._theGraph) + /* "planarity/full/graph.pyx":180 + * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) * - * def gp_UpperBoundEdges(self): # <<<<<<<<<<<<<< - * return graphLib.gp_UpperBoundEdges(self._theGraph) + * def gp_UpperBoundEdgeStorage(self): # <<<<<<<<<<<<<< + * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("planarity.full.graph.Graph.gp_UpperBoundEdges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("planarity.full.graph.Graph.gp_UpperBoundEdgeStorage", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); @@ -6377,8 +6767,8 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges(st return __pyx_r; } -/* "planarity/full/graph.pyx":168 - * return graphLib.gp_UpperBoundEdges(self._theGraph) +/* "planarity/full/graph.pyx":183 + * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) * * def gp_GetNextEdge(self, int e): # <<<<<<<<<<<<<< * if not self.gp_IsEdge(e): @@ -6386,16 +6776,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges(st */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_39gp_GetNextEdge(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNextEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_38gp_GetNextEdge, "Graph.gp_GetNextEdge(self, int e)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_39gp_GetNextEdge = {"gp_GetNextEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_39gp_GetNextEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_38gp_GetNextEdge}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_39gp_GetNextEdge(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_40gp_GetNextEdge, "Graph.gp_GetNextEdge(self, int e)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_41gp_GetNextEdge = {"gp_GetNextEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNextEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_40gp_GetNextEdge}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNextEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6425,32 +6815,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_e,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 168, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 183, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 168, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 183, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_GetNextEdge", 0) < (0)) __PYX_ERR(0, 168, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_GetNextEdge", 0) < (0)) __PYX_ERR(0, 183, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_GetNextEdge", 1, 1, 1, i); __PYX_ERR(0, 168, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_GetNextEdge", 1, 1, 1, i); __PYX_ERR(0, 183, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 168, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 183, __pyx_L3_error) } - __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 168, __pyx_L3_error) + __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 183, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_GetNextEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 168, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_GetNextEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 183, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6461,7 +6851,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNextEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -6471,7 +6861,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNextEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -6488,7 +6878,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_GetNextEdge", 0); - /* "planarity/full/graph.pyx":169 + /* "planarity/full/graph.pyx":184 * * def gp_GetNextEdge(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -6497,7 +6887,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct */ __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 169, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; { @@ -6505,15 +6895,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_IsEdge, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 169, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (!__pyx_t_5); if (unlikely(__pyx_t_6)) { - /* "planarity/full/graph.pyx":170 + /* "planarity/full/graph.pyx":185 * def gp_GetNextEdge(self, int e): * if not self.gp_IsEdge(e): * raise RuntimeError( # <<<<<<<<<<<<<< @@ -6522,20 +6912,20 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct */ __pyx_t_3 = NULL; - /* "planarity/full/graph.pyx":171 + /* "planarity/full/graph.pyx":186 * if not self.gp_IsEdge(e): * raise RuntimeError( * f"gp_GetNextEdge() failed: invalid edge index '{e}'." # <<<<<<<<<<<<<< * ) * */ - __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_gp_GetNextEdge_failed_invalid_ed; __pyx_t_7[1] = __pyx_t_2; __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__3; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 3, 45 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2, 127); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 171, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = 1; @@ -6544,14 +6934,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __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(0, 170, __pyx_L1_error) + __PYX_ERR(0, 185, __pyx_L1_error) - /* "planarity/full/graph.pyx":169 + /* "planarity/full/graph.pyx":184 * * def gp_GetNextEdge(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -6560,7 +6950,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct */ } - /* "planarity/full/graph.pyx":174 + /* "planarity/full/graph.pyx":189 * ) * * return graphLib.gp_GetNextEdge(self._theGraph, e) # <<<<<<<<<<<<<< @@ -6568,15 +6958,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct * def gp_GetNeighbor(self, int e): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) + __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":168 - * return graphLib.gp_UpperBoundEdges(self._theGraph) + /* "planarity/full/graph.pyx":183 + * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) * * def gp_GetNextEdge(self, int e): # <<<<<<<<<<<<<< * if not self.gp_IsEdge(e): @@ -6597,7 +6987,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct return __pyx_r; } -/* "planarity/full/graph.pyx":176 +/* "planarity/full/graph.pyx":191 * return graphLib.gp_GetNextEdge(self._theGraph, e) * * def gp_GetNeighbor(self, int e): # <<<<<<<<<<<<<< @@ -6606,16 +6996,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_38gp_GetNextEdge(struct */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNeighbor(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetNeighbor(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_40gp_GetNeighbor, "Graph.gp_GetNeighbor(self, int e)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_41gp_GetNeighbor = {"gp_GetNeighbor", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNeighbor, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_40gp_GetNeighbor}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNeighbor(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_42gp_GetNeighbor, "Graph.gp_GetNeighbor(self, int e)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_43gp_GetNeighbor = {"gp_GetNeighbor", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetNeighbor, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_42gp_GetNeighbor}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetNeighbor(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6645,32 +7035,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_e,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 176, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 191, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 191, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_GetNeighbor", 0) < (0)) __PYX_ERR(0, 176, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_GetNeighbor", 0) < (0)) __PYX_ERR(0, 191, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_GetNeighbor", 1, 1, 1, i); __PYX_ERR(0, 176, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_GetNeighbor", 1, 1, 1, i); __PYX_ERR(0, 191, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 176, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 191, __pyx_L3_error) } - __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 176, __pyx_L3_error) + __pyx_v_e = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_e == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 191, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_GetNeighbor", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 176, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_GetNeighbor", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 191, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6681,7 +7071,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetNeighbor(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_e); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -6691,7 +7081,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetNeighbor(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -6708,7 +7098,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_GetNeighbor", 0); - /* "planarity/full/graph.pyx":177 + /* "planarity/full/graph.pyx":192 * * def gp_GetNeighbor(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -6717,7 +7107,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct */ __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_e); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; { @@ -6725,15 +7115,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_IsEdge, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 177, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (!__pyx_t_5); if (unlikely(__pyx_t_6)) { - /* "planarity/full/graph.pyx":178 + /* "planarity/full/graph.pyx":193 * def gp_GetNeighbor(self, int e): * if not self.gp_IsEdge(e): * raise RuntimeError( # <<<<<<<<<<<<<< @@ -6742,20 +7132,20 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct */ __pyx_t_3 = NULL; - /* "planarity/full/graph.pyx":179 + /* "planarity/full/graph.pyx":194 * if not self.gp_IsEdge(e): * raise RuntimeError( * f"gp_GetNeighbor() failed: invalid edge index '{e}'." # <<<<<<<<<<<<<< * ) * */ - __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 179, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_e, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_gp_GetNeighbor_failed_invalid_ed; __pyx_t_7[1] = __pyx_t_2; __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__3; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 3, 45 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2, 127); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 179, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = 1; @@ -6764,14 +7154,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __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(0, 178, __pyx_L1_error) + __PYX_ERR(0, 193, __pyx_L1_error) - /* "planarity/full/graph.pyx":177 + /* "planarity/full/graph.pyx":192 * * def gp_GetNeighbor(self, int e): * if not self.gp_IsEdge(e): # <<<<<<<<<<<<<< @@ -6780,7 +7170,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct */ } - /* "planarity/full/graph.pyx":182 + /* "planarity/full/graph.pyx":197 * ) * * return graphLib.gp_GetNeighbor(self._theGraph, e) # <<<<<<<<<<<<<< @@ -6788,14 +7178,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct * def gp_GetFirstEdge(self, int v): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 182, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor(__pyx_v_self->_theGraph, __pyx_v_e); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":176 + /* "planarity/full/graph.pyx":191 * return graphLib.gp_GetNextEdge(self._theGraph, e) * * def gp_GetNeighbor(self, int e): # <<<<<<<<<<<<<< @@ -6817,7 +7207,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct return __pyx_r; } -/* "planarity/full/graph.pyx":184 +/* "planarity/full/graph.pyx":199 * return graphLib.gp_GetNeighbor(self._theGraph, e) * * def gp_GetFirstEdge(self, int v): # <<<<<<<<<<<<<< @@ -6826,16 +7216,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_40gp_GetNeighbor(struct */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetFirstEdge(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_45gp_GetFirstEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge, "Graph.gp_GetFirstEdge(self, int v)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_43gp_GetFirstEdge = {"gp_GetFirstEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetFirstEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetFirstEdge(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_44gp_GetFirstEdge, "Graph.gp_GetFirstEdge(self, int v)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_45gp_GetFirstEdge = {"gp_GetFirstEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_45gp_GetFirstEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_44gp_GetFirstEdge}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_45gp_GetFirstEdge(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -6865,32 +7255,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_v,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 184, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 199, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 199, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_GetFirstEdge", 0) < (0)) __PYX_ERR(0, 184, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_GetFirstEdge", 0) < (0)) __PYX_ERR(0, 199, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_GetFirstEdge", 1, 1, 1, i); __PYX_ERR(0, 184, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_GetFirstEdge", 1, 1, 1, i); __PYX_ERR(0, 199, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 184, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 199, __pyx_L3_error) } - __pyx_v_v = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_v == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 184, __pyx_L3_error) + __pyx_v_v = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_v == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_GetFirstEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 184, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_GetFirstEdge", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 199, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -6901,7 +7291,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_v); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_44gp_GetFirstEdge(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_v); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -6911,7 +7301,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_GetFirstEdge(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -6928,7 +7318,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_GetFirstEdge", 0); - /* "planarity/full/graph.pyx":185 + /* "planarity/full/graph.pyx":200 * * def gp_GetFirstEdge(self, int v): * if not self.gp_IsVertex(v): # <<<<<<<<<<<<<< @@ -6937,7 +7327,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc */ __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_v); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_v); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = 0; { @@ -6945,15 +7335,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_IsVertex, __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); } - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 185, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = (!__pyx_t_5); if (unlikely(__pyx_t_6)) { - /* "planarity/full/graph.pyx":186 + /* "planarity/full/graph.pyx":201 * def gp_GetFirstEdge(self, int v): * if not self.gp_IsVertex(v): * raise RuntimeError( # <<<<<<<<<<<<<< @@ -6962,20 +7352,20 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc */ __pyx_t_3 = NULL; - /* "planarity/full/graph.pyx":187 + /* "planarity/full/graph.pyx":202 * if not self.gp_IsVertex(v): * raise RuntimeError( * f"gp_GetFirstEdge() failed: invalid vertex intex '{v}'." # <<<<<<<<<<<<<< * ) * */ - __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_v, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyUnicode_From_int(__pyx_v_v, 0, ' ', 'd'); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_gp_GetFirstEdge_failed_invalid_v; __pyx_t_7[1] = __pyx_t_2; __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__3; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 3, 48 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_2) + 2, 127); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 187, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = 1; @@ -6984,14 +7374,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_4, (2-__pyx_t_4) | (__pyx_t_4*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __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(0, 186, __pyx_L1_error) + __PYX_ERR(0, 201, __pyx_L1_error) - /* "planarity/full/graph.pyx":185 + /* "planarity/full/graph.pyx":200 * * def gp_GetFirstEdge(self, int v): * if not self.gp_IsVertex(v): # <<<<<<<<<<<<<< @@ -7000,7 +7390,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc */ } - /* "planarity/full/graph.pyx":190 + /* "planarity/full/graph.pyx":205 * ) * * return graphLib.gp_GetFirstEdge(self._theGraph, v) # <<<<<<<<<<<<<< @@ -7008,14 +7398,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc * def gp_LowerBoundVertices(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge(__pyx_v_self->_theGraph, __pyx_v_v); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 190, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 190, __pyx_L1_error) + __pyx_t_9 = __pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge(__pyx_v_self->_theGraph, __pyx_v_v); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 205, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":184 + /* "planarity/full/graph.pyx":199 * return graphLib.gp_GetNeighbor(self._theGraph, e) * * def gp_GetFirstEdge(self, int v): # <<<<<<<<<<<<<< @@ -7037,7 +7427,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc return __pyx_r; } -/* "planarity/full/graph.pyx":192 +/* "planarity/full/graph.pyx":207 * return graphLib.gp_GetFirstEdge(self._theGraph, v) * * def gp_LowerBoundVertices(self): # <<<<<<<<<<<<<< @@ -7046,16 +7436,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge(struc */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_45gp_LowerBoundVertices(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_47gp_LowerBoundVertices(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices, "Graph.gp_LowerBoundVertices(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_45gp_LowerBoundVertices = {"gp_LowerBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_45gp_LowerBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_45gp_LowerBoundVertices(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_46gp_LowerBoundVertices, "Graph.gp_LowerBoundVertices(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_47gp_LowerBoundVertices = {"gp_LowerBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_47gp_LowerBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_46gp_LowerBoundVertices}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_47gp_LowerBoundVertices(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -7081,14 +7471,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_LowerBoundVertices", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_46gp_LowerBoundVertices(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_LowerBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -7098,7 +7488,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_LowerBoundVertices", 0); - /* "planarity/full/graph.pyx":193 + /* "planarity/full/graph.pyx":208 * * def gp_LowerBoundVertices(self): * return graphLib.gp_LowerBoundVertices(self._theGraph) # <<<<<<<<<<<<<< @@ -7106,14 +7496,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices * def gp_UpperBoundVertices(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":192 + /* "planarity/full/graph.pyx":207 * return graphLib.gp_GetFirstEdge(self._theGraph, v) * * def gp_LowerBoundVertices(self): # <<<<<<<<<<<<<< @@ -7132,7 +7522,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices return __pyx_r; } -/* "planarity/full/graph.pyx":195 +/* "planarity/full/graph.pyx":210 * return graphLib.gp_LowerBoundVertices(self._theGraph) * * def gp_UpperBoundVertices(self): # <<<<<<<<<<<<<< @@ -7141,16 +7531,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_47gp_UpperBoundVertices(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_49gp_UpperBoundVertices(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices, "Graph.gp_UpperBoundVertices(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_47gp_UpperBoundVertices = {"gp_UpperBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_47gp_UpperBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_47gp_UpperBoundVertices(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_48gp_UpperBoundVertices, "Graph.gp_UpperBoundVertices(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_49gp_UpperBoundVertices = {"gp_UpperBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_49gp_UpperBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_48gp_UpperBoundVertices}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_49gp_UpperBoundVertices(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -7176,14 +7566,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_UpperBoundVertices", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_48gp_UpperBoundVertices(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_UpperBoundVertices(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -7193,7 +7583,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_UpperBoundVertices", 0); - /* "planarity/full/graph.pyx":196 + /* "planarity/full/graph.pyx":211 * * def gp_UpperBoundVertices(self): * return graphLib.gp_UpperBoundVertices(self._theGraph) # <<<<<<<<<<<<<< @@ -7201,14 +7591,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices * def gp_IsVertex(self, int v): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 211, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":195 + /* "planarity/full/graph.pyx":210 * return graphLib.gp_LowerBoundVertices(self._theGraph) * * def gp_UpperBoundVertices(self): # <<<<<<<<<<<<<< @@ -7227,7 +7617,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices return __pyx_r; } -/* "planarity/full/graph.pyx":198 +/* "planarity/full/graph.pyx":213 * return graphLib.gp_UpperBoundVertices(self._theGraph) * * def gp_IsVertex(self, int v): # <<<<<<<<<<<<<< @@ -7236,16 +7626,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_49gp_IsVertex(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_51gp_IsVertex(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_48gp_IsVertex, "Graph.gp_IsVertex(self, int v)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_49gp_IsVertex = {"gp_IsVertex", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_49gp_IsVertex, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_48gp_IsVertex}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_49gp_IsVertex(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_50gp_IsVertex, "Graph.gp_IsVertex(self, int v)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_51gp_IsVertex = {"gp_IsVertex", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_51gp_IsVertex, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_50gp_IsVertex}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_51gp_IsVertex(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -7275,32 +7665,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_v,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 198, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 213, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 213, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_IsVertex", 0) < (0)) __PYX_ERR(0, 198, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_IsVertex", 0) < (0)) __PYX_ERR(0, 213, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_IsVertex", 1, 1, 1, i); __PYX_ERR(0, 198, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_IsVertex", 1, 1, 1, i); __PYX_ERR(0, 213, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 198, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 213, __pyx_L3_error) } - __pyx_v_v = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_v == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 198, __pyx_L3_error) + __pyx_v_v = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_v == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 213, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_IsVertex", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 198, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_IsVertex", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 213, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -7311,7 +7701,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_v); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_50gp_IsVertex(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_v); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -7321,7 +7711,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_IsVertex(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_v) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; @@ -7336,7 +7726,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_IsVertex", 0); - /* "planarity/full/graph.pyx":199 + /* "planarity/full/graph.pyx":214 * * def gp_IsVertex(self, int v): * return ( # <<<<<<<<<<<<<< @@ -7345,14 +7735,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ */ __Pyx_XDECREF(__pyx_r); - /* "planarity/full/graph.pyx":200 + /* "planarity/full/graph.pyx":215 * def gp_IsVertex(self, int v): * return ( * (v >= self.gp_LowerBoundVertices()) and # <<<<<<<<<<<<<< * (v < self.gp_UpperBoundVertices()) and * graphLib.gp_IsVertex(self._theGraph, v) */ - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_v); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_v_v); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_4); @@ -7361,13 +7751,13 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_LowerBoundVertices, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 215, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 200, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 215, __pyx_L1_error) if (__pyx_t_6) { __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { @@ -7377,14 +7767,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ goto __pyx_L3_bool_binop_done; } - /* "planarity/full/graph.pyx":201 + /* "planarity/full/graph.pyx":216 * return ( * (v >= self.gp_LowerBoundVertices()) and * (v < self.gp_UpperBoundVertices()) and # <<<<<<<<<<<<<< * graphLib.gp_IsVertex(self._theGraph, v) * ) */ - __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyLong_From_int(__pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = ((PyObject *)__pyx_v_self); __Pyx_INCREF(__pyx_t_2); @@ -7393,13 +7783,13 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; __pyx_t_3 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_gp_UpperBoundVertices, __pyx_callargs+__pyx_t_5, (1-__pyx_t_5) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } - __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 201, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 216, __pyx_L1_error) if (__pyx_t_6) { __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { @@ -7409,15 +7799,15 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ goto __pyx_L3_bool_binop_done; } - /* "planarity/full/graph.pyx":202 + /* "planarity/full/graph.pyx":217 * (v >= self.gp_LowerBoundVertices()) and * (v < self.gp_UpperBoundVertices()) and * graphLib.gp_IsVertex(self._theGraph, v) # <<<<<<<<<<<<<< * ) * */ - __pyx_t_7 = __pyx_f_9planarity_4full_8graphLib_gp_IsVertex(__pyx_v_self->_theGraph, __pyx_v_v); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 202, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) + __pyx_t_7 = __pyx_f_9planarity_4full_8graphLib_gp_IsVertex(__pyx_v_self->_theGraph, __pyx_v_v); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 217, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_t_2; __pyx_t_2 = 0; @@ -7426,7 +7816,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":198 + /* "planarity/full/graph.pyx":213 * return graphLib.gp_UpperBoundVertices(self._theGraph) * * def gp_IsVertex(self, int v): # <<<<<<<<<<<<<< @@ -7448,7 +7838,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ return __pyx_r; } -/* "planarity/full/graph.pyx":205 +/* "planarity/full/graph.pyx":220 * ) * * def gp_Read(self, str infile_name): # <<<<<<<<<<<<<< @@ -7457,16 +7847,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_48gp_IsVertex(struct __ */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_51gp_Read(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Read(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_50gp_Read, "Graph.gp_Read(self, str infile_name)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_51gp_Read = {"gp_Read", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_51gp_Read, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_50gp_Read}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_51gp_Read(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_52gp_Read, "Graph.gp_Read(self, str infile_name)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_53gp_Read = {"gp_Read", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Read, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_52gp_Read}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Read(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -7496,32 +7886,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_infile_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 205, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 220, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 220, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_Read", 0) < (0)) __PYX_ERR(0, 205, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_Read", 0) < (0)) __PYX_ERR(0, 220, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_Read", 1, 1, 1, i); __PYX_ERR(0, 205, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_Read", 1, 1, 1, i); __PYX_ERR(0, 220, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 205, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 220, __pyx_L3_error) } __pyx_v_infile_name = ((PyObject*)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_Read", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 205, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_Read", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 220, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -7532,8 +7922,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_infile_name), (&PyUnicode_Type), 1, "infile_name", 1))) __PYX_ERR(0, 205, __pyx_L1_error) - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_infile_name); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_infile_name), (&PyUnicode_Type), 1, "infile_name", 1))) __PYX_ERR(0, 220, __pyx_L1_error) + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_52gp_Read(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_infile_name); /* function exit code */ goto __pyx_L0; @@ -7552,7 +7942,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_infile_name) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Read(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_infile_name) { PyObject *__pyx_v_encoded = 0; char const *__pyx_v_FileName; PyObject *__pyx_r = NULL; @@ -7569,7 +7959,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_Read", 0); - /* "planarity/full/graph.pyx":207 + /* "planarity/full/graph.pyx":222 * def gp_Read(self, str infile_name): * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = infile_name.encode('utf-8') # <<<<<<<<<<<<<< @@ -7578,43 +7968,43 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_ */ if (unlikely(__pyx_v_infile_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 207, __pyx_L1_error) + __PYX_ERR(0, 222, __pyx_L1_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_infile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_infile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_encoded = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "planarity/full/graph.pyx":208 + /* "planarity/full/graph.pyx":223 * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = infile_name.encode('utf-8') * cdef const char *FileName = encoded # <<<<<<<<<<<<<< * * if graphLib.gp_Read(self._theGraph, FileName) != OK: */ - __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 223, __pyx_L1_error) __pyx_v_FileName = __pyx_t_2; - /* "planarity/full/graph.pyx":210 + /* "planarity/full/graph.pyx":225 * cdef const char *FileName = encoded * * if graphLib.gp_Read(self._theGraph, FileName) != OK: # <<<<<<<<<<<<<< * raise RuntimeError(f"gp_Read() failed.") * */ - __pyx_t_3 = __pyx_f_9planarity_4full_8graphLib_gp_Read(__pyx_v_self->_theGraph, __pyx_v_FileName); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 210, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error) + __pyx_t_3 = __pyx_f_9planarity_4full_8graphLib_gp_Read(__pyx_v_self->_theGraph, __pyx_v_FileName); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 225, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 210, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 210, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_t_6)) { - /* "planarity/full/graph.pyx":211 + /* "planarity/full/graph.pyx":226 * * if graphLib.gp_Read(self._theGraph, FileName) != OK: * raise RuntimeError(f"gp_Read() failed.") # <<<<<<<<<<<<<< @@ -7627,14 +8017,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_ PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_gp_Read_failed}; __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 211, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 226, __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(0, 211, __pyx_L1_error) + __PYX_ERR(0, 226, __pyx_L1_error) - /* "planarity/full/graph.pyx":210 + /* "planarity/full/graph.pyx":225 * cdef const char *FileName = encoded * * if graphLib.gp_Read(self._theGraph, FileName) != OK: # <<<<<<<<<<<<<< @@ -7643,7 +8033,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_ */ } - /* "planarity/full/graph.pyx":205 + /* "planarity/full/graph.pyx":220 * ) * * def gp_Read(self, str infile_name): # <<<<<<<<<<<<<< @@ -7667,7 +8057,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_ return __pyx_r; } -/* "planarity/full/graph.pyx":213 +/* "planarity/full/graph.pyx":228 * raise RuntimeError(f"gp_Read() failed.") * * def gp_Write(self, str outfile_name, str mode): # <<<<<<<<<<<<<< @@ -7676,16 +8066,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_50gp_Read(struct __pyx_ */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Write(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_55gp_Write(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_52gp_Write, "Graph.gp_Write(self, str outfile_name, str mode)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_53gp_Write = {"gp_Write", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Write, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_52gp_Write}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Write(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_54gp_Write, "Graph.gp_Write(self, str outfile_name, str mode)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_55gp_Write = {"gp_Write", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_55gp_Write, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_54gp_Write}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_55gp_Write(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -7716,39 +8106,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_outfile_name,&__pyx_mstate_global->__pyx_n_u_mode,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 213, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 228, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 228, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 228, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_Write", 0) < (0)) __PYX_ERR(0, 213, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_Write", 0) < (0)) __PYX_ERR(0, 228, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_Write", 1, 2, 2, i); __PYX_ERR(0, 213, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_Write", 1, 2, 2, i); __PYX_ERR(0, 228, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 228, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 213, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 228, __pyx_L3_error) } __pyx_v_outfile_name = ((PyObject*)values[0]); __pyx_v_mode = ((PyObject*)values[1]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_Write", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 213, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_Write", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 228, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -7759,9 +8149,9 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outfile_name), (&PyUnicode_Type), 1, "outfile_name", 1))) __PYX_ERR(0, 213, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mode), (&PyUnicode_Type), 1, "mode", 1))) __PYX_ERR(0, 213, __pyx_L1_error) - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_outfile_name, __pyx_v_mode); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outfile_name), (&PyUnicode_Type), 1, "outfile_name", 1))) __PYX_ERR(0, 228, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mode), (&PyUnicode_Type), 1, "mode", 1))) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_54gp_Write(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_outfile_name, __pyx_v_mode); /* function exit code */ goto __pyx_L0; @@ -7780,7 +8170,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name, PyObject *__pyx_v_mode) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_Write(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name, PyObject *__pyx_v_mode) { PyObject *__pyx_v_mode_code = NULL; PyObject *__pyx_v_encoded = 0; char const *__pyx_v_theFileName; @@ -7804,61 +8194,61 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_Write", 0); - /* "planarity/full/graph.pyx":214 + /* "planarity/full/graph.pyx":229 * * def gp_Write(self, str outfile_name, str mode): * mode_code = (graphLib.WRITE_ADJLIST if mode == "a" # <<<<<<<<<<<<<< * else (graphLib.WRITE_ADJMATRIX if mode == "m" * else (graphLib.WRITE_G6 if mode == "g" */ - __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_mstate_global->__pyx_n_u_a, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 214, __pyx_L1_error) + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_mstate_global->__pyx_n_u_a, Py_EQ)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 229, __pyx_L1_error) if (__pyx_t_2) { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_WRITE_ADJLIST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_WRITE_ADJLIST); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; } else { - /* "planarity/full/graph.pyx":215 + /* "planarity/full/graph.pyx":230 * def gp_Write(self, str outfile_name, str mode): * mode_code = (graphLib.WRITE_ADJLIST if mode == "a" * else (graphLib.WRITE_ADJMATRIX if mode == "m" # <<<<<<<<<<<<<< * else (graphLib.WRITE_G6 if mode == "g" * else None))) */ - __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_mstate_global->__pyx_n_u_m, Py_EQ)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 215, __pyx_L1_error) + __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_mstate_global->__pyx_n_u_m, Py_EQ)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 230, __pyx_L1_error) if (__pyx_t_5) { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 215, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_WRITE_ADJMATRIX); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 215, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_WRITE_ADJMATRIX); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 230, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_6; __pyx_t_6 = 0; } else { - /* "planarity/full/graph.pyx":216 + /* "planarity/full/graph.pyx":231 * mode_code = (graphLib.WRITE_ADJLIST if mode == "a" * else (graphLib.WRITE_ADJMATRIX if mode == "m" * else (graphLib.WRITE_G6 if mode == "g" # <<<<<<<<<<<<<< * else None))) * if not mode_code: */ - __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_mstate_global->__pyx_n_u_g, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 216, __pyx_L1_error) + __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_mode, __pyx_mstate_global->__pyx_n_u_g, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 231, __pyx_L1_error) if (__pyx_t_7) { - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 216, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_graphLib); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_WRITE_G6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 216, __pyx_L1_error) + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_WRITE_G6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __pyx_t_8; __pyx_t_8 = 0; } else { - /* "planarity/full/graph.pyx":217 + /* "planarity/full/graph.pyx":232 * else (graphLib.WRITE_ADJMATRIX if mode == "m" * else (graphLib.WRITE_G6 if mode == "g" * else None))) # <<<<<<<<<<<<<< @@ -7877,18 +8267,18 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx __pyx_v_mode_code = __pyx_t_1; __pyx_t_1 = 0; - /* "planarity/full/graph.pyx":218 + /* "planarity/full/graph.pyx":233 * else (graphLib.WRITE_G6 if mode == "g" * else None))) * if not mode_code: # <<<<<<<<<<<<<< * raise ValueError( * f"Invalid graph format specifier \"{mode}\" is not one of " */ - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_mode_code); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 218, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_mode_code); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 233, __pyx_L1_error) __pyx_t_5 = (!__pyx_t_2); if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":219 + /* "planarity/full/graph.pyx":234 * else None))) * if not mode_code: * raise ValueError( # <<<<<<<<<<<<<< @@ -7897,20 +8287,20 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx */ __pyx_t_4 = NULL; - /* "planarity/full/graph.pyx":220 + /* "planarity/full/graph.pyx":235 * if not mode_code: * raise ValueError( * f"Invalid graph format specifier \"{mode}\" is not one of " # <<<<<<<<<<<<<< * "'gam'." * ) */ - __pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 220, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyUnicode_Unicode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_graph_format_specifier; __pyx_t_9[1] = __pyx_t_6; __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_is_not_one_of_gam; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_9, 3, 32 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6) + 22, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6)); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 220, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = 1; @@ -7919,14 +8309,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx __pyx_t_1 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_ValueError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 219, __pyx_L1_error) + if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __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(0, 219, __pyx_L1_error) + __PYX_ERR(0, 234, __pyx_L1_error) - /* "planarity/full/graph.pyx":218 + /* "planarity/full/graph.pyx":233 * else (graphLib.WRITE_G6 if mode == "g" * else None))) * if not mode_code: # <<<<<<<<<<<<<< @@ -7935,7 +8325,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx */ } - /* "planarity/full/graph.pyx":225 + /* "planarity/full/graph.pyx":240 * * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = outfile_name.encode('utf-8') # <<<<<<<<<<<<<< @@ -7944,44 +8334,44 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx */ if (unlikely(__pyx_v_outfile_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 225, __pyx_L1_error) + __PYX_ERR(0, 240, __pyx_L1_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 225, __pyx_L1_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_encoded = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "planarity/full/graph.pyx":226 + /* "planarity/full/graph.pyx":241 * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = outfile_name.encode('utf-8') * cdef const char *theFileName = encoded # <<<<<<<<<<<<<< * * if graphLib.gp_Write(self._theGraph, theFileName, mode_code) != OK: */ - __pyx_t_11 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_11) && PyErr_Occurred())) __PYX_ERR(0, 226, __pyx_L1_error) + __pyx_t_11 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_11) && PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L1_error) __pyx_v_theFileName = __pyx_t_11; - /* "planarity/full/graph.pyx":228 + /* "planarity/full/graph.pyx":243 * cdef const char *theFileName = encoded * * if graphLib.gp_Write(self._theGraph, theFileName, mode_code) != OK: # <<<<<<<<<<<<<< * raise RuntimeError( * f"gp_Write() of graph to '{outfile_name}' failed." */ - __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_mode_code); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 228, __pyx_L1_error) - __pyx_t_13 = __pyx_f_9planarity_4full_8graphLib_gp_Write(__pyx_v_self->_theGraph, __pyx_v_theFileName, __pyx_t_12); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 228, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_12 = __Pyx_PyLong_As_int(__pyx_v_mode_code); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_13 = __pyx_f_9planarity_4full_8graphLib_gp_Write(__pyx_v_self->_theGraph, __pyx_v_theFileName, __pyx_t_12); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 228, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 228, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":229 + /* "planarity/full/graph.pyx":244 * * if graphLib.gp_Write(self._theGraph, theFileName, mode_code) != OK: * raise RuntimeError( # <<<<<<<<<<<<<< @@ -7990,20 +8380,20 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx */ __pyx_t_8 = NULL; - /* "planarity/full/graph.pyx":230 + /* "planarity/full/graph.pyx":245 * if graphLib.gp_Write(self._theGraph, theFileName, mode_code) != OK: * raise RuntimeError( * f"gp_Write() of graph to '{outfile_name}' failed." # <<<<<<<<<<<<<< * ) * */ - __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9[0] = __pyx_mstate_global->__pyx_kp_u_gp_Write_of_graph_to; __pyx_t_9[1] = __pyx_t_1; __pyx_t_9[2] = __pyx_mstate_global->__pyx_kp_u_failed; __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_9, 3, 24 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 9, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1)); - if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 230, __pyx_L1_error) + if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = 1; @@ -8012,14 +8402,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (__pyx_t_10*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __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(0, 229, __pyx_L1_error) + __PYX_ERR(0, 244, __pyx_L1_error) - /* "planarity/full/graph.pyx":228 + /* "planarity/full/graph.pyx":243 * cdef const char *theFileName = encoded * * if graphLib.gp_Write(self._theGraph, theFileName, mode_code) != OK: # <<<<<<<<<<<<<< @@ -8028,7 +8418,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx */ } - /* "planarity/full/graph.pyx":213 + /* "planarity/full/graph.pyx":228 * raise RuntimeError(f"gp_Read() failed.") * * def gp_Write(self, str outfile_name, str mode): # <<<<<<<<<<<<<< @@ -8055,7 +8445,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx return __pyx_r; } -/* "planarity/full/graph.pyx":233 +/* "planarity/full/graph.pyx":248 * ) * * def gp_ExtendWith_Planarity(self): # <<<<<<<<<<<<<< @@ -8064,16 +8454,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_52gp_Write(struct __pyx */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_55gp_ExtendWith_Planarity(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_57gp_ExtendWith_Planarity(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planarity, "Graph.gp_ExtendWith_Planarity(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_55gp_ExtendWith_Planarity = {"gp_ExtendWith_Planarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_55gp_ExtendWith_Planarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planarity}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_55gp_ExtendWith_Planarity(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_56gp_ExtendWith_Planarity, "Graph.gp_ExtendWith_Planarity(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_57gp_ExtendWith_Planarity = {"gp_ExtendWith_Planarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_57gp_ExtendWith_Planarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_56gp_ExtendWith_Planarity}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_57gp_ExtendWith_Planarity(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8099,14 +8489,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_ExtendWith_Planarity", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planarity(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_56gp_ExtendWith_Planarity(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_ExtendWith_Planarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -8120,26 +8510,26 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planari int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_ExtendWith_Planarity", 0); - /* "planarity/full/graph.pyx":234 + /* "planarity/full/graph.pyx":249 * * def gp_ExtendWith_Planarity(self): * if graphLib.gp_ExtendWith_Planarity(self._theGraph) != OK: # <<<<<<<<<<<<<< * raise RuntimeError("Failed to extend graph with Planarity structures.") * */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 234, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 234, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":235 + /* "planarity/full/graph.pyx":250 * def gp_ExtendWith_Planarity(self): * if graphLib.gp_ExtendWith_Planarity(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with Planarity structures.") # <<<<<<<<<<<<<< @@ -8152,14 +8542,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planari PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Failed_to_extend_graph_with_Plan}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 250, __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(0, 235, __pyx_L1_error) + __PYX_ERR(0, 250, __pyx_L1_error) - /* "planarity/full/graph.pyx":234 + /* "planarity/full/graph.pyx":249 * * def gp_ExtendWith_Planarity(self): * if graphLib.gp_ExtendWith_Planarity(self._theGraph) != OK: # <<<<<<<<<<<<<< @@ -8168,7 +8558,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planari */ } - /* "planarity/full/graph.pyx":233 + /* "planarity/full/graph.pyx":248 * ) * * def gp_ExtendWith_Planarity(self): # <<<<<<<<<<<<<< @@ -8191,7 +8581,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planari return __pyx_r; } -/* "planarity/full/graph.pyx":237 +/* "planarity/full/graph.pyx":252 * raise RuntimeError("Failed to extend graph with Planarity structures.") * * def gp_Embed(self, int embedFlags) -> int: # <<<<<<<<<<<<<< @@ -8200,16 +8590,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planari */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_57gp_Embed(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_59gp_Embed(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_56gp_Embed, "Graph.gp_Embed(self, int embedFlags) -> int"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_57gp_Embed = {"gp_Embed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_57gp_Embed, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_56gp_Embed}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_57gp_Embed(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_58gp_Embed, "Graph.gp_Embed(self, int embedFlags) -> int"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_59gp_Embed = {"gp_Embed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_59gp_Embed, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_58gp_Embed}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_59gp_Embed(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8239,32 +8629,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_embedFlags,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 237, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 252, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 237, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 252, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_Embed", 0) < (0)) __PYX_ERR(0, 237, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_Embed", 0) < (0)) __PYX_ERR(0, 252, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_Embed", 1, 1, 1, i); __PYX_ERR(0, 237, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_Embed", 1, 1, 1, i); __PYX_ERR(0, 252, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 237, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 252, __pyx_L3_error) } - __pyx_v_embedFlags = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_embedFlags == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 237, __pyx_L3_error) + __pyx_v_embedFlags = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_embedFlags == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_Embed", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 237, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_Embed", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 252, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -8275,7 +8665,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_embedFlags); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_58gp_Embed(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_embedFlags); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -8285,7 +8675,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_embedFlags) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_Embed(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, int __pyx_v_embedFlags) { int __pyx_v_embed_result; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -8301,51 +8691,51 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_Embed", 0); - /* "planarity/full/graph.pyx":238 + /* "planarity/full/graph.pyx":253 * * def gp_Embed(self, int embedFlags) -> int: * embed_result = graphLib.gp_Embed(self._theGraph, embedFlags) # <<<<<<<<<<<<<< * if embed_result != OK and embed_result != NONEMBEDDABLE: * raise RuntimeError("Failed to perform embed operation.") */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_Embed(__pyx_v_self->_theGraph, __pyx_v_embedFlags); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 238, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_Embed(__pyx_v_self->_theGraph, __pyx_v_embedFlags); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 253, __pyx_L1_error) __pyx_v_embed_result = __pyx_t_1; - /* "planarity/full/graph.pyx":239 + /* "planarity/full/graph.pyx":254 * def gp_Embed(self, int embedFlags) -> int: * embed_result = graphLib.gp_Embed(self._theGraph, embedFlags) * if embed_result != OK and embed_result != NONEMBEDDABLE: # <<<<<<<<<<<<<< * raise RuntimeError("Failed to perform embed operation.") * */ - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_embed_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_embed_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 239, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { } else { __pyx_t_2 = __pyx_t_6; goto __pyx_L4_bool_binop_done; } - __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_embed_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_embed_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_NONEMBEDDABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 239, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_NONEMBEDDABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 239, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_6; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_2)) { - /* "planarity/full/graph.pyx":240 + /* "planarity/full/graph.pyx":255 * embed_result = graphLib.gp_Embed(self._theGraph, embedFlags) * if embed_result != OK and embed_result != NONEMBEDDABLE: * raise RuntimeError("Failed to perform embed operation.") # <<<<<<<<<<<<<< @@ -8358,14 +8748,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Failed_to_perform_embed_operatio}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 240, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 255, __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(0, 240, __pyx_L1_error) + __PYX_ERR(0, 255, __pyx_L1_error) - /* "planarity/full/graph.pyx":239 + /* "planarity/full/graph.pyx":254 * def gp_Embed(self, int embedFlags) -> int: * embed_result = graphLib.gp_Embed(self._theGraph, embedFlags) * if embed_result != OK and embed_result != NONEMBEDDABLE: # <<<<<<<<<<<<<< @@ -8374,7 +8764,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx */ } - /* "planarity/full/graph.pyx":242 + /* "planarity/full/graph.pyx":257 * raise RuntimeError("Failed to perform embed operation.") * * return embed_result # <<<<<<<<<<<<<< @@ -8382,14 +8772,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx * def gp_TestEmbedResultIntegrity(self, Graph copy_of_orig_graph, int embed_result) -> int: */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_embed_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 242, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_embed_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_PyInt_FromNumber(&__pyx_t_3, NULL, 0) < (0)) __PYX_ERR(0, 242, __pyx_L1_error) + if (__Pyx_PyInt_FromNumber(&__pyx_t_3, NULL, 0) < (0)) __PYX_ERR(0, 257, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":237 + /* "planarity/full/graph.pyx":252 * raise RuntimeError("Failed to extend graph with Planarity structures.") * * def gp_Embed(self, int embedFlags) -> int: # <<<<<<<<<<<<<< @@ -8410,7 +8800,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx return __pyx_r; } -/* "planarity/full/graph.pyx":244 +/* "planarity/full/graph.pyx":259 * return embed_result * * def gp_TestEmbedResultIntegrity(self, Graph copy_of_orig_graph, int embed_result) -> int: # <<<<<<<<<<<<<< @@ -8419,16 +8809,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_56gp_Embed(struct __pyx */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_59gp_TestEmbedResultIntegrity(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_61gp_TestEmbedResultIntegrity(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultIntegrity, "Graph.gp_TestEmbedResultIntegrity(self, Graph copy_of_orig_graph, int embed_result) -> int"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_59gp_TestEmbedResultIntegrity = {"gp_TestEmbedResultIntegrity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_59gp_TestEmbedResultIntegrity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultIntegrity}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_59gp_TestEmbedResultIntegrity(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_60gp_TestEmbedResultIntegrity, "Graph.gp_TestEmbedResultIntegrity(self, Graph copy_of_orig_graph, int embed_result) -> int"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_61gp_TestEmbedResultIntegrity = {"gp_TestEmbedResultIntegrity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_61gp_TestEmbedResultIntegrity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_60gp_TestEmbedResultIntegrity}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_61gp_TestEmbedResultIntegrity(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8459,39 +8849,39 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_copy_of_orig_graph,&__pyx_mstate_global->__pyx_n_u_embed_result,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 244, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 259, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 2: values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 259, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_TestEmbedResultIntegrity", 0) < (0)) __PYX_ERR(0, 244, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_TestEmbedResultIntegrity", 0) < (0)) __PYX_ERR(0, 259, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 2; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_TestEmbedResultIntegrity", 1, 2, 2, i); __PYX_ERR(0, 244, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_TestEmbedResultIntegrity", 1, 2, 2, i); __PYX_ERR(0, 259, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 2)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 259, __pyx_L3_error) values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 244, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(0, 259, __pyx_L3_error) } __pyx_v_copy_of_orig_graph = ((struct __pyx_obj_9planarity_4full_5graph_Graph *)values[0]); - __pyx_v_embed_result = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_embed_result == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L3_error) + __pyx_v_embed_result = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_embed_result == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 259, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_TestEmbedResultIntegrity", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 244, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_TestEmbedResultIntegrity", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 259, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -8502,8 +8892,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_copy_of_orig_graph), __pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, 1, "copy_of_orig_graph", 0))) __PYX_ERR(0, 244, __pyx_L1_error) - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultIntegrity(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_copy_of_orig_graph, __pyx_v_embed_result); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_copy_of_orig_graph), __pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, 1, "copy_of_orig_graph", 0))) __PYX_ERR(0, 259, __pyx_L1_error) + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_60gp_TestEmbedResultIntegrity(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_copy_of_orig_graph, __pyx_v_embed_result); /* function exit code */ goto __pyx_L0; @@ -8522,7 +8912,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultIntegrity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_copy_of_orig_graph, int __pyx_v_embed_result) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_TestEmbedResultIntegrity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_copy_of_orig_graph, int __pyx_v_embed_result) { int __pyx_v_check_result; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations @@ -8538,51 +8928,51 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultInt int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_TestEmbedResultIntegrity", 0); - /* "planarity/full/graph.pyx":245 + /* "planarity/full/graph.pyx":260 * * def gp_TestEmbedResultIntegrity(self, Graph copy_of_orig_graph, int embed_result) -> int: * check_result = graphLib.gp_TestEmbedResultIntegrity( # <<<<<<<<<<<<<< * self._theGraph, copy_of_orig_graph._theGraph, embed_result * ) */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity(__pyx_v_self->_theGraph, __pyx_v_copy_of_orig_graph->_theGraph, __pyx_v_embed_result); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 245, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity(__pyx_v_self->_theGraph, __pyx_v_copy_of_orig_graph->_theGraph, __pyx_v_embed_result); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L1_error) __pyx_v_check_result = __pyx_t_1; - /* "planarity/full/graph.pyx":248 + /* "planarity/full/graph.pyx":263 * self._theGraph, copy_of_orig_graph._theGraph, embed_result * ) * if check_result != OK and check_result != NONEMBEDDABLE: # <<<<<<<<<<<<<< * raise RuntimeError("Failed embed integrity check.") * */ - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_check_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_check_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_6) { } else { __pyx_t_2 = __pyx_t_6; goto __pyx_L4_bool_binop_done; } - __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_check_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyLong_From_int(__pyx_v_check_result); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_NONEMBEDDABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_NONEMBEDDABLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 248, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_6; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_2)) { - /* "planarity/full/graph.pyx":249 + /* "planarity/full/graph.pyx":264 * ) * if check_result != OK and check_result != NONEMBEDDABLE: * raise RuntimeError("Failed embed integrity check.") # <<<<<<<<<<<<<< @@ -8595,14 +8985,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultInt PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_mstate_global->__pyx_kp_u_Failed_embed_integrity_check}; __pyx_t_3 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_7, (2-__pyx_t_7) | (__pyx_t_7*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error) + if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 264, __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(0, 249, __pyx_L1_error) + __PYX_ERR(0, 264, __pyx_L1_error) - /* "planarity/full/graph.pyx":248 + /* "planarity/full/graph.pyx":263 * self._theGraph, copy_of_orig_graph._theGraph, embed_result * ) * if check_result != OK and check_result != NONEMBEDDABLE: # <<<<<<<<<<<<<< @@ -8611,7 +9001,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultInt */ } - /* "planarity/full/graph.pyx":251 + /* "planarity/full/graph.pyx":266 * raise RuntimeError("Failed embed integrity check.") * * return check_result # <<<<<<<<<<<<<< @@ -8619,14 +9009,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultInt * def gp_ExtendWith_Outerplanarity(self): */ __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_check_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 251, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyLong_From_int(__pyx_v_check_result); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_PyInt_FromNumber(&__pyx_t_3, NULL, 0) < (0)) __PYX_ERR(0, 251, __pyx_L1_error) + if (__Pyx_PyInt_FromNumber(&__pyx_t_3, NULL, 0) < (0)) __PYX_ERR(0, 266, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; - /* "planarity/full/graph.pyx":244 + /* "planarity/full/graph.pyx":259 * return embed_result * * def gp_TestEmbedResultIntegrity(self, Graph copy_of_orig_graph, int embed_result) -> int: # <<<<<<<<<<<<<< @@ -8647,7 +9037,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultInt return __pyx_r; } -/* "planarity/full/graph.pyx":253 +/* "planarity/full/graph.pyx":268 * return check_result * * def gp_ExtendWith_Outerplanarity(self): # <<<<<<<<<<<<<< @@ -8656,16 +9046,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultInt */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_61gp_ExtendWith_Outerplanarity(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_Outerplanarity(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerplanarity, "Graph.gp_ExtendWith_Outerplanarity(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_61gp_ExtendWith_Outerplanarity = {"gp_ExtendWith_Outerplanarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_61gp_ExtendWith_Outerplanarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerplanarity}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_61gp_ExtendWith_Outerplanarity(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_62gp_ExtendWith_Outerplanarity, "Graph.gp_ExtendWith_Outerplanarity(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_63gp_ExtendWith_Outerplanarity = {"gp_ExtendWith_Outerplanarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_Outerplanarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_62gp_ExtendWith_Outerplanarity}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_Outerplanarity(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8691,14 +9081,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_ExtendWith_Outerplanarity", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerplanarity(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_Outerplanarity(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerplanarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_Outerplanarity(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -8712,26 +9102,26 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerpl int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_ExtendWith_Outerplanarity", 0); - /* "planarity/full/graph.pyx":254 + /* "planarity/full/graph.pyx":269 * * def gp_ExtendWith_Outerplanarity(self): * if graphLib.gp_ExtendWith_Outerplanarity(self._theGraph) != OK: # <<<<<<<<<<<<<< * raise RuntimeError("Failed to extend graph with Outerplanarity structures.") * */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 254, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 254, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 254, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 254, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":255 + /* "planarity/full/graph.pyx":270 * def gp_ExtendWith_Outerplanarity(self): * if graphLib.gp_ExtendWith_Outerplanarity(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with Outerplanarity structures.") # <<<<<<<<<<<<<< @@ -8744,14 +9134,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerpl PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Failed_to_extend_graph_with_Oute}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 255, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 270, __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(0, 255, __pyx_L1_error) + __PYX_ERR(0, 270, __pyx_L1_error) - /* "planarity/full/graph.pyx":254 + /* "planarity/full/graph.pyx":269 * * def gp_ExtendWith_Outerplanarity(self): * if graphLib.gp_ExtendWith_Outerplanarity(self._theGraph) != OK: # <<<<<<<<<<<<<< @@ -8760,7 +9150,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerpl */ } - /* "planarity/full/graph.pyx":253 + /* "planarity/full/graph.pyx":268 * return check_result * * def gp_ExtendWith_Outerplanarity(self): # <<<<<<<<<<<<<< @@ -8783,7 +9173,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerpl return __pyx_r; } -/* "planarity/full/graph.pyx":257 +/* "planarity/full/graph.pyx":272 * raise RuntimeError("Failed to extend graph with Outerplanarity structures.") * * def gp_ExtendWith_DrawPlanar(self): # <<<<<<<<<<<<<< @@ -8792,16 +9182,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerpl */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_DrawPlanar(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_65gp_ExtendWith_DrawPlanar(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPlanar, "Graph.gp_ExtendWith_DrawPlanar(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_63gp_ExtendWith_DrawPlanar = {"gp_ExtendWith_DrawPlanar", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_DrawPlanar, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPlanar}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_DrawPlanar(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_64gp_ExtendWith_DrawPlanar, "Graph.gp_ExtendWith_DrawPlanar(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_65gp_ExtendWith_DrawPlanar = {"gp_ExtendWith_DrawPlanar", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_65gp_ExtendWith_DrawPlanar, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_64gp_ExtendWith_DrawPlanar}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_65gp_ExtendWith_DrawPlanar(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8827,14 +9217,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_ExtendWith_DrawPlanar", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPlanar(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_64gp_ExtendWith_DrawPlanar(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPlanar(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_ExtendWith_DrawPlanar(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -8848,26 +9238,26 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPla int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_ExtendWith_DrawPlanar", 0); - /* "planarity/full/graph.pyx":258 + /* "planarity/full/graph.pyx":273 * * def gp_ExtendWith_DrawPlanar(self): * if graphLib.gp_ExtendWith_DrawPlanar(self._theGraph) != OK: # <<<<<<<<<<<<<< * raise RuntimeError("Failed to extend graph with DrawPlanar structures.") * */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 258, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 258, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":259 + /* "planarity/full/graph.pyx":274 * def gp_ExtendWith_DrawPlanar(self): * if graphLib.gp_ExtendWith_DrawPlanar(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with DrawPlanar structures.") # <<<<<<<<<<<<<< @@ -8880,14 +9270,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPla PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Failed_to_extend_graph_with_Draw}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 259, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 274, __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(0, 259, __pyx_L1_error) + __PYX_ERR(0, 274, __pyx_L1_error) - /* "planarity/full/graph.pyx":258 + /* "planarity/full/graph.pyx":273 * * def gp_ExtendWith_DrawPlanar(self): * if graphLib.gp_ExtendWith_DrawPlanar(self._theGraph) != OK: # <<<<<<<<<<<<<< @@ -8896,7 +9286,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPla */ } - /* "planarity/full/graph.pyx":257 + /* "planarity/full/graph.pyx":272 * raise RuntimeError("Failed to extend graph with Outerplanarity structures.") * * def gp_ExtendWith_DrawPlanar(self): # <<<<<<<<<<<<<< @@ -8919,7 +9309,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPla return __pyx_r; } -/* "planarity/full/graph.pyx":261 +/* "planarity/full/graph.pyx":276 * raise RuntimeError("Failed to extend graph with DrawPlanar structures.") * * def gp_DrawPlanar_RenderToFile(self, str outfile_name): # <<<<<<<<<<<<<< @@ -8928,16 +9318,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPla */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_65gp_DrawPlanar_RenderToFile(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToFile(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderToFile, "Graph.gp_DrawPlanar_RenderToFile(self, str outfile_name)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_65gp_DrawPlanar_RenderToFile = {"gp_DrawPlanar_RenderToFile", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_65gp_DrawPlanar_RenderToFile, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderToFile}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_65gp_DrawPlanar_RenderToFile(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToFile, "Graph.gp_DrawPlanar_RenderToFile(self, str outfile_name)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToFile = {"gp_DrawPlanar_RenderToFile", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToFile, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToFile}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToFile(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -8967,32 +9357,32 @@ PyObject *__pyx_args, PyObject *__pyx_kwds { PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_outfile_name,0}; const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; - if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 261, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 276, __pyx_L3_error) if (__pyx_kwds_len > 0) { switch (__pyx_nargs) { case 1: values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 276, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_DrawPlanar_RenderToFile", 0) < (0)) __PYX_ERR(0, 261, __pyx_L3_error) + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "gp_DrawPlanar_RenderToFile", 0) < (0)) __PYX_ERR(0, 276, __pyx_L3_error) for (Py_ssize_t i = __pyx_nargs; i < 1; i++) { - if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_DrawPlanar_RenderToFile", 1, 1, 1, i); __PYX_ERR(0, 261, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("gp_DrawPlanar_RenderToFile", 1, 1, 1, i); __PYX_ERR(0, 276, __pyx_L3_error) } } } else if (unlikely(__pyx_nargs != 1)) { goto __pyx_L5_argtuple_error; } else { values[0] = __Pyx_ArgRef_FASTCALL(__pyx_args, 0); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 261, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(0, 276, __pyx_L3_error) } __pyx_v_outfile_name = ((PyObject*)values[0]); } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("gp_DrawPlanar_RenderToFile", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 261, __pyx_L3_error) + __Pyx_RaiseArgtupleInvalid("gp_DrawPlanar_RenderToFile", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 276, __pyx_L3_error) __pyx_L6_skip:; goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; @@ -9003,8 +9393,8 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outfile_name), (&PyUnicode_Type), 1, "outfile_name", 1))) __PYX_ERR(0, 261, __pyx_L1_error) - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderToFile(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_outfile_name); + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_outfile_name), (&PyUnicode_Type), 1, "outfile_name", 1))) __PYX_ERR(0, 276, __pyx_L1_error) + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToFile(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v_outfile_name); /* function exit code */ goto __pyx_L0; @@ -9023,7 +9413,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderToFile(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToFile(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, PyObject *__pyx_v_outfile_name) { PyObject *__pyx_v_encoded = 0; char const *__pyx_v_theFileName; PyObject *__pyx_r = NULL; @@ -9042,7 +9432,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderT int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_DrawPlanar_RenderToFile", 0); - /* "planarity/full/graph.pyx":263 + /* "planarity/full/graph.pyx":278 * def gp_DrawPlanar_RenderToFile(self, str outfile_name): * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = outfile_name.encode('utf-8') # <<<<<<<<<<<<<< @@ -9051,43 +9441,43 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderT */ if (unlikely(__pyx_v_outfile_name == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "encode"); - __PYX_ERR(0, 263, __pyx_L1_error) + __PYX_ERR(0, 278, __pyx_L1_error) } - __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error) + __pyx_t_1 = PyUnicode_AsUTF8String(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 278, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_encoded = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; - /* "planarity/full/graph.pyx":264 + /* "planarity/full/graph.pyx":279 * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = outfile_name.encode('utf-8') * cdef const char *theFileName = encoded # <<<<<<<<<<<<<< * * if graphLib.gp_DrawPlanar_RenderToFile(self._theGraph, theFileName) != OK: */ - __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyBytes_AsString(__pyx_v_encoded); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(0, 279, __pyx_L1_error) __pyx_v_theFileName = __pyx_t_2; - /* "planarity/full/graph.pyx":266 + /* "planarity/full/graph.pyx":281 * cdef const char *theFileName = encoded * * if graphLib.gp_DrawPlanar_RenderToFile(self._theGraph, theFileName) != OK: # <<<<<<<<<<<<<< * raise RuntimeError(f"Failed to render embedding to file '{outfile_name}'.") * */ - __pyx_t_3 = __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile(__pyx_v_self->_theGraph, __pyx_v_theFileName); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 266, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 266, __pyx_L1_error) + __pyx_t_3 = __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile(__pyx_v_self->_theGraph, __pyx_v_theFileName); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 281, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 266, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 266, __pyx_L1_error) + __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 266, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__pyx_t_6)) { - /* "planarity/full/graph.pyx":267 + /* "planarity/full/graph.pyx":282 * * if graphLib.gp_DrawPlanar_RenderToFile(self._theGraph, theFileName) != OK: * raise RuntimeError(f"Failed to render embedding to file '{outfile_name}'.") # <<<<<<<<<<<<<< @@ -9095,13 +9485,13 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderT * def gp_DrawPlanar_RenderToString(self): */ __pyx_t_4 = NULL; - __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyUnicode_Unicode(__pyx_v_outfile_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7[0] = __pyx_mstate_global->__pyx_kp_u_Failed_to_render_embedding_to_fi; __pyx_t_7[1] = __pyx_t_1; __pyx_t_7[2] = __pyx_mstate_global->__pyx_kp_u__3; __pyx_t_8 = __Pyx_PyUnicode_Join(__pyx_t_7, 3, 36 + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_1) + 2, 127 | __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_1)); - if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 267, __pyx_L1_error) + if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = 1; @@ -9110,14 +9500,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderT __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_9, (2-__pyx_t_9) | (__pyx_t_9*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 267, __pyx_L1_error) + if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 282, __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(0, 267, __pyx_L1_error) + __PYX_ERR(0, 282, __pyx_L1_error) - /* "planarity/full/graph.pyx":266 + /* "planarity/full/graph.pyx":281 * cdef const char *theFileName = encoded * * if graphLib.gp_DrawPlanar_RenderToFile(self._theGraph, theFileName) != OK: # <<<<<<<<<<<<<< @@ -9126,7 +9516,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderT */ } - /* "planarity/full/graph.pyx":261 + /* "planarity/full/graph.pyx":276 * raise RuntimeError("Failed to extend graph with DrawPlanar structures.") * * def gp_DrawPlanar_RenderToFile(self, str outfile_name): # <<<<<<<<<<<<<< @@ -9151,7 +9541,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderT return __pyx_r; } -/* "planarity/full/graph.pyx":269 +/* "planarity/full/graph.pyx":284 * raise RuntimeError(f"Failed to render embedding to file '{outfile_name}'.") * * def gp_DrawPlanar_RenderToString(self): # <<<<<<<<<<<<<< @@ -9160,16 +9550,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderT */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToString(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_69gp_DrawPlanar_RenderToString(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToString, "Graph.gp_DrawPlanar_RenderToString(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToString = {"gp_DrawPlanar_RenderToString", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToString, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToString}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToString(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_68gp_DrawPlanar_RenderToString, "Graph.gp_DrawPlanar_RenderToString(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_69gp_DrawPlanar_RenderToString = {"gp_DrawPlanar_RenderToString", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_69gp_DrawPlanar_RenderToString, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_68gp_DrawPlanar_RenderToString}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_69gp_DrawPlanar_RenderToString(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9195,14 +9585,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_DrawPlanar_RenderToString", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToString(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_68gp_DrawPlanar_RenderToString(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToString(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_DrawPlanar_RenderToString(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { char *__pyx_v_renditionString; PyObject *__pyx_v_string_conversion_error = NULL; PyObject *__pyx_r = NULL; @@ -9233,7 +9623,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_DrawPlanar_RenderToString", 0); - /* "planarity/full/graph.pyx":270 + /* "planarity/full/graph.pyx":285 * * def gp_DrawPlanar_RenderToString(self): * cdef char* renditionString = NULL # <<<<<<<<<<<<<< @@ -9242,26 +9632,26 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT */ __pyx_v_renditionString = NULL; - /* "planarity/full/graph.pyx":271 + /* "planarity/full/graph.pyx":286 * def gp_DrawPlanar_RenderToString(self): * cdef char* renditionString = NULL * if graphLib.gp_DrawPlanar_RenderToString(self._theGraph, &renditionString) != OK: # <<<<<<<<<<<<<< * raise RuntimeError(f"Failed to render embedding to C string.") * */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString(__pyx_v_self->_theGraph, (&__pyx_v_renditionString)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 271, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 271, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString(__pyx_v_self->_theGraph, (&__pyx_v_renditionString)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 271, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 271, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 271, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":272 + /* "planarity/full/graph.pyx":287 * cdef char* renditionString = NULL * if graphLib.gp_DrawPlanar_RenderToString(self._theGraph, &renditionString) != OK: * raise RuntimeError(f"Failed to render embedding to C string.") # <<<<<<<<<<<<<< @@ -9274,14 +9664,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Failed_to_render_embedding_to_C}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __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(0, 272, __pyx_L1_error) + __PYX_ERR(0, 287, __pyx_L1_error) - /* "planarity/full/graph.pyx":271 + /* "planarity/full/graph.pyx":286 * def gp_DrawPlanar_RenderToString(self): * cdef char* renditionString = NULL * if graphLib.gp_DrawPlanar_RenderToString(self._theGraph, &renditionString) != OK: # <<<<<<<<<<<<<< @@ -9290,7 +9680,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT */ } - /* "planarity/full/graph.pyx":274 + /* "planarity/full/graph.pyx":289 * raise RuntimeError(f"Failed to render embedding to C string.") * * try: # <<<<<<<<<<<<<< @@ -9307,7 +9697,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT __Pyx_XGOTREF(__pyx_t_9); /*try:*/ { - /* "planarity/full/graph.pyx":275 + /* "planarity/full/graph.pyx":290 * * try: * return renditionString.decode('ascii') # <<<<<<<<<<<<<< @@ -9315,14 +9705,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT * raise RuntimeError( */ __Pyx_XDECREF(__pyx_r); - __pyx_t_10 = __Pyx_ssize_strlen(__pyx_v_renditionString); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 275, __pyx_L7_error) - __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_renditionString, 0, __pyx_t_10, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L7_error) + __pyx_t_10 = __Pyx_ssize_strlen(__pyx_v_renditionString); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 290, __pyx_L7_error) + __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_renditionString, 0, __pyx_t_10, NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 290, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L11_try_return; - /* "planarity/full/graph.pyx":274 + /* "planarity/full/graph.pyx":289 * raise RuntimeError(f"Failed to render embedding to C string.") * * try: # <<<<<<<<<<<<<< @@ -9335,7 +9725,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "planarity/full/graph.pyx":276 + /* "planarity/full/graph.pyx":291 * try: * return renditionString.decode('ascii') * except Exception as string_conversion_error: # <<<<<<<<<<<<<< @@ -9345,7 +9735,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT __pyx_t_1 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(((PyTypeObject*)PyExc_Exception)))); if (__pyx_t_1) { __Pyx_AddTraceback("planarity.full.graph.Graph.gp_DrawPlanar_RenderToString", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(0, 276, __pyx_L9_except_error) + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(0, 291, __pyx_L9_except_error) __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_2); @@ -9353,7 +9743,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT __pyx_v_string_conversion_error = __pyx_t_3; /*try:*/ { - /* "planarity/full/graph.pyx":277 + /* "planarity/full/graph.pyx":292 * return renditionString.decode('ascii') * except Exception as string_conversion_error: * raise RuntimeError( # <<<<<<<<<<<<<< @@ -9366,11 +9756,11 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_mstate_global->__pyx_kp_u_Failed_to_convert_C_string_to_Py}; __pyx_t_11 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; - if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 277, __pyx_L18_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 292, __pyx_L18_error) __Pyx_GOTREF(__pyx_t_11); } - /* "planarity/full/graph.pyx":279 + /* "planarity/full/graph.pyx":294 * raise RuntimeError( * "Failed to convert C string to Python string." * ) from string_conversion_error # <<<<<<<<<<<<<< @@ -9379,10 +9769,10 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT */ __Pyx_Raise(__pyx_t_11, 0, 0, __pyx_v_string_conversion_error); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __PYX_ERR(0, 277, __pyx_L18_error) + __PYX_ERR(0, 292, __pyx_L18_error) } - /* "planarity/full/graph.pyx":276 + /* "planarity/full/graph.pyx":291 * try: * return renditionString.decode('ascii') * except Exception as string_conversion_error: # <<<<<<<<<<<<<< @@ -9425,7 +9815,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT } goto __pyx_L9_except_error; - /* "planarity/full/graph.pyx":274 + /* "planarity/full/graph.pyx":289 * raise RuntimeError(f"Failed to render embedding to C string.") * * try: # <<<<<<<<<<<<<< @@ -9447,7 +9837,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT } } - /* "planarity/full/graph.pyx":281 + /* "planarity/full/graph.pyx":296 * ) from string_conversion_error * finally: * free(renditionString) # <<<<<<<<<<<<<< @@ -9499,7 +9889,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT } } - /* "planarity/full/graph.pyx":269 + /* "planarity/full/graph.pyx":284 * raise RuntimeError(f"Failed to render embedding to file '{outfile_name}'.") * * def gp_DrawPlanar_RenderToString(self): # <<<<<<<<<<<<<< @@ -9523,7 +9913,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT return __pyx_r; } -/* "planarity/full/graph.pyx":283 +/* "planarity/full/graph.pyx":298 * free(renditionString) * * def gp_ExtendWith_K23Search(self): # <<<<<<<<<<<<<< @@ -9532,16 +9922,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderT */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_69gp_ExtendWith_K23Search(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K23Search(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Search, "Graph.gp_ExtendWith_K23Search(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_69gp_ExtendWith_K23Search = {"gp_ExtendWith_K23Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_69gp_ExtendWith_K23Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Search}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_69gp_ExtendWith_K23Search(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K23Search, "Graph.gp_ExtendWith_K23Search(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K23Search = {"gp_ExtendWith_K23Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K23Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K23Search}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K23Search(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9567,14 +9957,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_ExtendWith_K23Search", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Search(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K23Search(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K23Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -9588,26 +9978,26 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Sear int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_ExtendWith_K23Search", 0); - /* "planarity/full/graph.pyx":284 + /* "planarity/full/graph.pyx":299 * * def gp_ExtendWith_K23Search(self): * if graphLib.gp_ExtendWith_K23Search(self._theGraph) != OK: # <<<<<<<<<<<<<< * raise RuntimeError("Failed to extend graph with K23Search structures.") * */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 284, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 299, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 284, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 284, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":285 + /* "planarity/full/graph.pyx":300 * def gp_ExtendWith_K23Search(self): * if graphLib.gp_ExtendWith_K23Search(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with K23Search structures.") # <<<<<<<<<<<<<< @@ -9620,14 +10010,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Sear PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Failed_to_extend_graph_with_K23S}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 285, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __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(0, 285, __pyx_L1_error) + __PYX_ERR(0, 300, __pyx_L1_error) - /* "planarity/full/graph.pyx":284 + /* "planarity/full/graph.pyx":299 * * def gp_ExtendWith_K23Search(self): * if graphLib.gp_ExtendWith_K23Search(self._theGraph) != OK: # <<<<<<<<<<<<<< @@ -9636,7 +10026,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Sear */ } - /* "planarity/full/graph.pyx":283 + /* "planarity/full/graph.pyx":298 * free(renditionString) * * def gp_ExtendWith_K23Search(self): # <<<<<<<<<<<<<< @@ -9659,7 +10049,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Sear return __pyx_r; } -/* "planarity/full/graph.pyx":287 +/* "planarity/full/graph.pyx":302 * raise RuntimeError("Failed to extend graph with K23Search structures.") * * def gp_ExtendWith_K33Search(self): # <<<<<<<<<<<<<< @@ -9668,16 +10058,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Sear */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K33Search(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K33Search(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Search, "Graph.gp_ExtendWith_K33Search(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K33Search = {"gp_ExtendWith_K33Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K33Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Search}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K33Search(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K33Search, "Graph.gp_ExtendWith_K33Search(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K33Search = {"gp_ExtendWith_K33Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K33Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K33Search}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K33Search(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9703,14 +10093,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_ExtendWith_K33Search", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Search(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K33Search(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K33Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -9724,26 +10114,26 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Sear int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_ExtendWith_K33Search", 0); - /* "planarity/full/graph.pyx":288 + /* "planarity/full/graph.pyx":303 * * def gp_ExtendWith_K33Search(self): * if graphLib.gp_ExtendWith_K33Search(self._theGraph) != OK: # <<<<<<<<<<<<<< * raise RuntimeError("Failed to extend graph with K33Search structures.") * */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 303, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 288, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 288, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":289 + /* "planarity/full/graph.pyx":304 * def gp_ExtendWith_K33Search(self): * if graphLib.gp_ExtendWith_K33Search(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with K33Search structures.") # <<<<<<<<<<<<<< @@ -9756,14 +10146,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Sear PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Failed_to_extend_graph_with_K33S}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 289, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 304, __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(0, 289, __pyx_L1_error) + __PYX_ERR(0, 304, __pyx_L1_error) - /* "planarity/full/graph.pyx":288 + /* "planarity/full/graph.pyx":303 * * def gp_ExtendWith_K33Search(self): * if graphLib.gp_ExtendWith_K33Search(self._theGraph) != OK: # <<<<<<<<<<<<<< @@ -9772,7 +10162,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Sear */ } - /* "planarity/full/graph.pyx":287 + /* "planarity/full/graph.pyx":302 * raise RuntimeError("Failed to extend graph with K23Search structures.") * * def gp_ExtendWith_K33Search(self): # <<<<<<<<<<<<<< @@ -9795,7 +10185,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Sear return __pyx_r; } -/* "planarity/full/graph.pyx":291 +/* "planarity/full/graph.pyx":306 * raise RuntimeError("Failed to extend graph with K33Search structures.") * * def gp_ExtendWith_K4Search(self): # <<<<<<<<<<<<<< @@ -9804,16 +10194,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Sear */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K4Search(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_75gp_ExtendWith_K4Search(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Search, "Graph.gp_ExtendWith_K4Search(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K4Search = {"gp_ExtendWith_K4Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K4Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Search}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K4Search(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_74gp_ExtendWith_K4Search, "Graph.gp_ExtendWith_K4Search(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_75gp_ExtendWith_K4Search = {"gp_ExtendWith_K4Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_75gp_ExtendWith_K4Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_74gp_ExtendWith_K4Search}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_75gp_ExtendWith_K4Search(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9839,14 +10229,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("gp_ExtendWith_K4Search", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Search(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_74gp_ExtendWith_K4Search(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_74gp_ExtendWith_K4Search(struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; @@ -9860,25 +10250,25 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Searc int __pyx_clineno = 0; __Pyx_RefNannySetupContext("gp_ExtendWith_K4Search", 0); - /* "planarity/full/graph.pyx":292 + /* "planarity/full/graph.pyx":307 * * def gp_ExtendWith_K4Search(self): * if graphLib.gp_ExtendWith_K4Search(self._theGraph) != OK: # <<<<<<<<<<<<<< * raise RuntimeError("Failed to extend graph with K4Search structures.") */ - __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 292, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_1 = __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search(__pyx_v_self->_theGraph); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyLong_From_int(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 292, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_OK); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 292, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(__pyx_t_5)) { - /* "planarity/full/graph.pyx":293 + /* "planarity/full/graph.pyx":308 * def gp_ExtendWith_K4Search(self): * if graphLib.gp_ExtendWith_K4Search(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with K4Search structures.") # <<<<<<<<<<<<<< @@ -9889,14 +10279,14 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Searc PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_mstate_global->__pyx_kp_u_Failed_to_extend_graph_with_K4Se}; __pyx_t_4 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_RuntimeError)), __pyx_callargs+__pyx_t_6, (2-__pyx_t_6) | (__pyx_t_6*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 293, __pyx_L1_error) + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __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(0, 293, __pyx_L1_error) + __PYX_ERR(0, 308, __pyx_L1_error) - /* "planarity/full/graph.pyx":292 + /* "planarity/full/graph.pyx":307 * * def gp_ExtendWith_K4Search(self): * if graphLib.gp_ExtendWith_K4Search(self._theGraph) != OK: # <<<<<<<<<<<<<< @@ -9904,7 +10294,7 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Searc */ } - /* "planarity/full/graph.pyx":291 + /* "planarity/full/graph.pyx":306 * raise RuntimeError("Failed to extend graph with K33Search structures.") * * def gp_ExtendWith_K4Search(self): # <<<<<<<<<<<<<< @@ -9934,16 +10324,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Searc */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_75__reduce_cython__(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_77__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_74__reduce_cython__, "Graph.__reduce_cython__(self)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_75__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_75__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_74__reduce_cython__}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_75__reduce_cython__(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_76__reduce_cython__, "Graph.__reduce_cython__(self)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_77__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_77__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_76__reduce_cython__}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_77__reduce_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -9969,14 +10359,14 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 0)) return NULL; if (unlikely(__pyx_kwds_len > 0)) {__Pyx_RejectKeywords("__reduce_cython__", __pyx_kwds); return NULL;} - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_74__reduce_cython__(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_76__reduce_cython__(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_74__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_76__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; @@ -10016,16 +10406,16 @@ static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_74__reduce_cython__(CYT */ /* Python wrapper */ -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_77__setstate_cython__(PyObject *__pyx_v_self, +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_79__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_76__setstate_cython__, "Graph.__setstate_cython__(self, __pyx_state)"); -static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_77__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_77__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_76__setstate_cython__}; -static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_77__setstate_cython__(PyObject *__pyx_v_self, +PyDoc_STRVAR(__pyx_doc_9planarity_4full_5graph_5Graph_78__setstate_cython__, "Graph.__setstate_cython__(self, __pyx_state)"); +static PyMethodDef __pyx_mdef_9planarity_4full_5graph_5Graph_79__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_79__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_78__setstate_cython__}; +static PyObject *__pyx_pw_9planarity_4full_5graph_5Graph_79__setstate_cython__(PyObject *__pyx_v_self, #if CYTHON_METH_FASTCALL PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else @@ -10091,7 +10481,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_76__setstate_cython__(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v___pyx_state); + __pyx_r = __pyx_pf_9planarity_4full_5graph_5Graph_78__setstate_cython__(((struct __pyx_obj_9planarity_4full_5graph_Graph *)__pyx_v_self), __pyx_v___pyx_state); /* function exit code */ for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { @@ -10101,7 +10491,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds return __pyx_r; } -static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_76__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { +static PyObject *__pyx_pf_9planarity_4full_5graph_5Graph_78__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_9planarity_4full_5graph_Graph *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; @@ -10186,33 +10576,34 @@ static PyMethodDef __pyx_methods_9planarity_4full_5graph_Graph[] = { {"gp_FindEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_19gp_FindEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_18gp_FindEdge}, {"gp_GetVertexDegree", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_21gp_GetVertexDegree, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_20gp_GetVertexDegree}, {"gp_AddEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_23gp_AddEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_22gp_AddEdge}, - {"gp_DeleteEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DeleteEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_24gp_DeleteEdge}, - {"gp_LowerBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_27gp_LowerBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_26gp_LowerBoundEdgeStorage}, - {"gp_UpperBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_29gp_UpperBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_28gp_UpperBoundEdgeStorage}, - {"gp_IsEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_31gp_IsEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_30gp_IsEdge}, - {"gp_EdgeInUse", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_33gp_EdgeInUse, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_32gp_EdgeInUse}, - {"gp_LowerBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_35gp_LowerBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_34gp_LowerBoundEdges}, - {"gp_UpperBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_37gp_UpperBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_36gp_UpperBoundEdges}, - {"gp_GetNextEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_39gp_GetNextEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_38gp_GetNextEdge}, - {"gp_GetNeighbor", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNeighbor, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_40gp_GetNeighbor}, - {"gp_GetFirstEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetFirstEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_42gp_GetFirstEdge}, - {"gp_LowerBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_45gp_LowerBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_44gp_LowerBoundVertices}, - {"gp_UpperBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_47gp_UpperBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_46gp_UpperBoundVertices}, - {"gp_IsVertex", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_49gp_IsVertex, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_48gp_IsVertex}, - {"gp_Read", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_51gp_Read, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_50gp_Read}, - {"gp_Write", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Write, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_52gp_Write}, - {"gp_ExtendWith_Planarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_55gp_ExtendWith_Planarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_54gp_ExtendWith_Planarity}, - {"gp_Embed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_57gp_Embed, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_56gp_Embed}, - {"gp_TestEmbedResultIntegrity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_59gp_TestEmbedResultIntegrity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_58gp_TestEmbedResultIntegrity}, - {"gp_ExtendWith_Outerplanarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_61gp_ExtendWith_Outerplanarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_60gp_ExtendWith_Outerplanarity}, - {"gp_ExtendWith_DrawPlanar", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_DrawPlanar, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_62gp_ExtendWith_DrawPlanar}, - {"gp_DrawPlanar_RenderToFile", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_65gp_DrawPlanar_RenderToFile, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_64gp_DrawPlanar_RenderToFile}, - {"gp_DrawPlanar_RenderToString", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToString, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToString}, - {"gp_ExtendWith_K23Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_69gp_ExtendWith_K23Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_68gp_ExtendWith_K23Search}, - {"gp_ExtendWith_K33Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K33Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K33Search}, - {"gp_ExtendWith_K4Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K4Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K4Search}, - {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_75__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_74__reduce_cython__}, - {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_77__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_76__setstate_cython__}, + {"gp_DynamicAddEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_25gp_DynamicAddEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_24gp_DynamicAddEdge}, + {"gp_DeleteEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_27gp_DeleteEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_26gp_DeleteEdge}, + {"gp_LowerBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_29gp_LowerBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_28gp_LowerBoundEdges}, + {"gp_UpperBoundEdges", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_31gp_UpperBoundEdges, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_30gp_UpperBoundEdges}, + {"gp_IsEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_33gp_IsEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_32gp_IsEdge}, + {"gp_EdgeInUse", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_35gp_EdgeInUse, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_34gp_EdgeInUse}, + {"gp_LowerBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_37gp_LowerBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_36gp_LowerBoundEdgeStorage}, + {"gp_UpperBoundEdgeStorage", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_39gp_UpperBoundEdgeStorage, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_38gp_UpperBoundEdgeStorage}, + {"gp_GetNextEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_41gp_GetNextEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_40gp_GetNextEdge}, + {"gp_GetNeighbor", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_43gp_GetNeighbor, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_42gp_GetNeighbor}, + {"gp_GetFirstEdge", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_45gp_GetFirstEdge, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_44gp_GetFirstEdge}, + {"gp_LowerBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_47gp_LowerBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_46gp_LowerBoundVertices}, + {"gp_UpperBoundVertices", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_49gp_UpperBoundVertices, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_48gp_UpperBoundVertices}, + {"gp_IsVertex", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_51gp_IsVertex, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_50gp_IsVertex}, + {"gp_Read", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_53gp_Read, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_52gp_Read}, + {"gp_Write", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_55gp_Write, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_54gp_Write}, + {"gp_ExtendWith_Planarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_57gp_ExtendWith_Planarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_56gp_ExtendWith_Planarity}, + {"gp_Embed", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_59gp_Embed, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_58gp_Embed}, + {"gp_TestEmbedResultIntegrity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_61gp_TestEmbedResultIntegrity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_60gp_TestEmbedResultIntegrity}, + {"gp_ExtendWith_Outerplanarity", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_63gp_ExtendWith_Outerplanarity, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_62gp_ExtendWith_Outerplanarity}, + {"gp_ExtendWith_DrawPlanar", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_65gp_ExtendWith_DrawPlanar, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_64gp_ExtendWith_DrawPlanar}, + {"gp_DrawPlanar_RenderToFile", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToFile, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_66gp_DrawPlanar_RenderToFile}, + {"gp_DrawPlanar_RenderToString", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_69gp_DrawPlanar_RenderToString, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_68gp_DrawPlanar_RenderToString}, + {"gp_ExtendWith_K23Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K23Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_70gp_ExtendWith_K23Search}, + {"gp_ExtendWith_K33Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K33Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_72gp_ExtendWith_K33Search}, + {"gp_ExtendWith_K4Search", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_75gp_ExtendWith_K4Search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_74gp_ExtendWith_K4Search}, + {"__reduce_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_77__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_76__reduce_cython__}, + {"__setstate_cython__", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_9planarity_4full_5graph_5Graph_79__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_9planarity_4full_5graph_5Graph_78__setstate_cython__}, {0, 0, 0, 0} }; #if CYTHON_USE_TYPE_SPECS @@ -10419,8 +10810,8 @@ static int __Pyx_modinit_function_import_code(__pyx_mstatetype *__pyx_mstate) { #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely(!__pyx_import_signature)) __PYX_ERR(0, 1, __pyx_L1_error) #endif - const char * __pyx_import_name = __pyx_import_signature + 313; - void (**const __pyx_import_pointers[])(void) = {(void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DupGraph, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_New, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetEdgeCapacity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetN, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Read, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Write, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_CopyGraph, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EnsureEdgeCapacity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetVertexDegree, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_InitGraph, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsVertex, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_FindEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_AddEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Embed, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Free, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ReinitGraph, (void (**)(void)) NULL}; + const char * __pyx_import_name = __pyx_import_signature + 314; + void (**const __pyx_import_pointers[])(void) = {(void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DupGraph, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_New, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetEdgeCapacity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetN, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Read, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Write, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_CopyGraph, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EnsureEdgeCapacity, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetVertexDegree, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_InitGraph, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsVertex, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_FindEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_AddEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DynamicAddEdge, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Embed, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Free, (void (**)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ReinitGraph, (void (**)(void)) NULL}; void (**const *__pyx_import_pointer)(void) = __pyx_import_pointers; const char *__pyx_import_current_signature = __pyx_import_signature; while (*__pyx_import_pointer) { @@ -11075,386 +11466,401 @@ __Pyx_RefNannySetupContext("PyInit_graph", 0); /* "planarity/full/graph.pyx":133 * ) * + * def gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink): # <<<<<<<<<<<<<< + * if ulink != 0 and ulink != 1: + * raise RuntimeError( +*/ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_25gp_DynamicAddEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_DynamicAddEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); + #endif + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_DynamicAddEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 133, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "planarity/full/graph.pyx":148 + * ) + * * def gp_DeleteEdge(self, int e): # <<<<<<<<<<<<<< * if not self.gp_IsEdge(e): * raise RuntimeError( */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_25gp_DeleteEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_DeleteEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[10])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_27gp_DeleteEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_DeleteEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_DeleteEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 133, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_DeleteEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 148, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":141 + /* "planarity/full/graph.pyx":156 * return graphLib.gp_DeleteEdge(self._theGraph, e) * - * def gp_LowerBoundEdgeStorage(self): # <<<<<<<<<<<<<< - * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) + * def gp_LowerBoundEdges(self): # <<<<<<<<<<<<<< + * return graphLib.gp_LowerBoundEdges(self._theGraph) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_27gp_LowerBoundEdgeStorage, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_LowerBoundEdgeStorage, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[11])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_29gp_LowerBoundEdges, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_LowerBoundEdges, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_LowerBoundEdgeStorage, __pyx_t_2) < (0)) __PYX_ERR(0, 141, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_LowerBoundEdges, __pyx_t_2) < (0)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":144 - * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) + /* "planarity/full/graph.pyx":159 + * return graphLib.gp_LowerBoundEdges(self._theGraph) * - * def gp_UpperBoundEdgeStorage(self): # <<<<<<<<<<<<<< - * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) + * def gp_UpperBoundEdges(self): # <<<<<<<<<<<<<< + * return graphLib.gp_UpperBoundEdges(self._theGraph) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_29gp_UpperBoundEdgeStorage, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_UpperBoundEdgeStorage, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[12])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_31gp_UpperBoundEdges, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_UpperBoundEdges, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_UpperBoundEdgeStorage, __pyx_t_2) < (0)) __PYX_ERR(0, 144, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_UpperBoundEdges, __pyx_t_2) < (0)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":147 - * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) + /* "planarity/full/graph.pyx":162 + * return graphLib.gp_UpperBoundEdges(self._theGraph) * * def gp_IsEdge(self, int e): # <<<<<<<<<<<<<< * return ( * (e >= self.gp_LowerBoundEdgeStorage()) and */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_31gp_IsEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_IsEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[13])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 147, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_33gp_IsEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_IsEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_IsEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 147, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_IsEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":154 + /* "planarity/full/graph.pyx":169 * ) * * def gp_EdgeInUse(self, int e): # <<<<<<<<<<<<<< * if not self.gp_IsEdge(e): * raise RuntimeError( */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_33gp_EdgeInUse, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_EdgeInUse, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[14])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_35gp_EdgeInUse, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_EdgeInUse, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_EdgeInUse, __pyx_t_2) < (0)) __PYX_ERR(0, 154, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_EdgeInUse, __pyx_t_2) < (0)) __PYX_ERR(0, 169, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":162 + /* "planarity/full/graph.pyx":177 * return graphLib.gp_EdgeInUse(self._theGraph, e) * - * def gp_LowerBoundEdges(self): # <<<<<<<<<<<<<< - * return graphLib.gp_LowerBoundEdges(self._theGraph) + * def gp_LowerBoundEdgeStorage(self): # <<<<<<<<<<<<<< + * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_35gp_LowerBoundEdges, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_LowerBoundEdges, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[15])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 162, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_37gp_LowerBoundEdgeStorage, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_LowerBoundEdgeStorage, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_LowerBoundEdges, __pyx_t_2) < (0)) __PYX_ERR(0, 162, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_LowerBoundEdgeStorage, __pyx_t_2) < (0)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":165 - * return graphLib.gp_LowerBoundEdges(self._theGraph) + /* "planarity/full/graph.pyx":180 + * return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) * - * def gp_UpperBoundEdges(self): # <<<<<<<<<<<<<< - * return graphLib.gp_UpperBoundEdges(self._theGraph) + * def gp_UpperBoundEdgeStorage(self): # <<<<<<<<<<<<<< + * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_37gp_UpperBoundEdges, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_UpperBoundEdges, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[16])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_39gp_UpperBoundEdgeStorage, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_UpperBoundEdgeStorage, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_UpperBoundEdges, __pyx_t_2) < (0)) __PYX_ERR(0, 165, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_UpperBoundEdgeStorage, __pyx_t_2) < (0)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":168 - * return graphLib.gp_UpperBoundEdges(self._theGraph) + /* "planarity/full/graph.pyx":183 + * return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) * * def gp_GetNextEdge(self, int e): # <<<<<<<<<<<<<< * if not self.gp_IsEdge(e): * raise RuntimeError( */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_39gp_GetNextEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_GetNextEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[17])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 168, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_41gp_GetNextEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_GetNextEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_GetNextEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 168, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_GetNextEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":176 + /* "planarity/full/graph.pyx":191 * return graphLib.gp_GetNextEdge(self._theGraph, e) * * def gp_GetNeighbor(self, int e): # <<<<<<<<<<<<<< * if not self.gp_IsEdge(e): * raise RuntimeError( */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_41gp_GetNeighbor, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_GetNeighbor, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[18])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_43gp_GetNeighbor, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_GetNeighbor, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_GetNeighbor, __pyx_t_2) < (0)) __PYX_ERR(0, 176, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_GetNeighbor, __pyx_t_2) < (0)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":184 + /* "planarity/full/graph.pyx":199 * return graphLib.gp_GetNeighbor(self._theGraph, e) * * def gp_GetFirstEdge(self, int v): # <<<<<<<<<<<<<< * if not self.gp_IsVertex(v): * raise RuntimeError( */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_43gp_GetFirstEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_GetFirstEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[19])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_45gp_GetFirstEdge, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_GetFirstEdge, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_GetFirstEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 184, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_GetFirstEdge, __pyx_t_2) < (0)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":192 + /* "planarity/full/graph.pyx":207 * return graphLib.gp_GetFirstEdge(self._theGraph, v) * * def gp_LowerBoundVertices(self): # <<<<<<<<<<<<<< * return graphLib.gp_LowerBoundVertices(self._theGraph) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_45gp_LowerBoundVertices, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_LowerBoundVertices, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[20])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_47gp_LowerBoundVertices, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_LowerBoundVertices, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_LowerBoundVertices, __pyx_t_2) < (0)) __PYX_ERR(0, 192, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_LowerBoundVertices, __pyx_t_2) < (0)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":195 + /* "planarity/full/graph.pyx":210 * return graphLib.gp_LowerBoundVertices(self._theGraph) * * def gp_UpperBoundVertices(self): # <<<<<<<<<<<<<< * return graphLib.gp_UpperBoundVertices(self._theGraph) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_47gp_UpperBoundVertices, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_UpperBoundVertices, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[21])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_49gp_UpperBoundVertices, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_UpperBoundVertices, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_UpperBoundVertices, __pyx_t_2) < (0)) __PYX_ERR(0, 195, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_UpperBoundVertices, __pyx_t_2) < (0)) __PYX_ERR(0, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":198 + /* "planarity/full/graph.pyx":213 * return graphLib.gp_UpperBoundVertices(self._theGraph) * * def gp_IsVertex(self, int v): # <<<<<<<<<<<<<< * return ( * (v >= self.gp_LowerBoundVertices()) and */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_49gp_IsVertex, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_IsVertex, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[22])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_51gp_IsVertex, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_IsVertex, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_IsVertex, __pyx_t_2) < (0)) __PYX_ERR(0, 198, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_IsVertex, __pyx_t_2) < (0)) __PYX_ERR(0, 213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":205 + /* "planarity/full/graph.pyx":220 * ) * * def gp_Read(self, str infile_name): # <<<<<<<<<<<<<< * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = infile_name.encode('utf-8') */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_51gp_Read, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_Read, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[23])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 205, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_53gp_Read, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_Read, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_Read, __pyx_t_2) < (0)) __PYX_ERR(0, 205, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_Read, __pyx_t_2) < (0)) __PYX_ERR(0, 220, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":213 + /* "planarity/full/graph.pyx":228 * raise RuntimeError(f"gp_Read() failed.") * * def gp_Write(self, str outfile_name, str mode): # <<<<<<<<<<<<<< * mode_code = (graphLib.WRITE_ADJLIST if mode == "a" * else (graphLib.WRITE_ADJMATRIX if mode == "m" */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_53gp_Write, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_Write, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[24])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 213, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_55gp_Write, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_Write, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_Write, __pyx_t_2) < (0)) __PYX_ERR(0, 213, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_Write, __pyx_t_2) < (0)) __PYX_ERR(0, 228, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":233 + /* "planarity/full/graph.pyx":248 * ) * * def gp_ExtendWith_Planarity(self): # <<<<<<<<<<<<<< * if graphLib.gp_ExtendWith_Planarity(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with Planarity structures.") */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_55gp_ExtendWith_Planarity, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_Planarity, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[25])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 233, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_57gp_ExtendWith_Planarity, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_Planarity, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_Planarity, __pyx_t_2) < (0)) __PYX_ERR(0, 233, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_Planarity, __pyx_t_2) < (0)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":237 + /* "planarity/full/graph.pyx":252 * raise RuntimeError("Failed to extend graph with Planarity structures.") * * def gp_Embed(self, int embedFlags) -> int: # <<<<<<<<<<<<<< * embed_result = graphLib.gp_Embed(self._theGraph, embedFlags) * if embed_result != OK and embed_result != NONEMBEDDABLE: */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 237, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(0, 237, __pyx_L1_error) - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_57gp_Embed, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_Embed, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[26])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(0, 252, __pyx_L1_error) + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_59gp_Embed, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_Embed, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #endif __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_4, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_Embed, __pyx_t_4) < (0)) __PYX_ERR(0, 237, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_Embed, __pyx_t_4) < (0)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "planarity/full/graph.pyx":244 + /* "planarity/full/graph.pyx":259 * return embed_result * * def gp_TestEmbedResultIntegrity(self, Graph copy_of_orig_graph, int embed_result) -> int: # <<<<<<<<<<<<<< * check_result = graphLib.gp_TestEmbedResultIntegrity( * self._theGraph, copy_of_orig_graph._theGraph, embed_result */ - __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(0, 244, __pyx_L1_error) - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_59gp_TestEmbedResultIntegrity, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_TestEmbedResultIntegrit, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[27])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_return, __pyx_mstate_global->__pyx_n_u_int) < (0)) __PYX_ERR(0, 259, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_61gp_TestEmbedResultIntegrity, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_TestEmbedResultIntegrit, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_4); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_TestEmbedResultIntegrity, __pyx_t_2) < (0)) __PYX_ERR(0, 244, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_TestEmbedResultIntegrity, __pyx_t_2) < (0)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":253 + /* "planarity/full/graph.pyx":268 * return check_result * * def gp_ExtendWith_Outerplanarity(self): # <<<<<<<<<<<<<< * if graphLib.gp_ExtendWith_Outerplanarity(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with Outerplanarity structures.") */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_61gp_ExtendWith_Outerplanarity, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_Outerplanari, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[28])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 253, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_63gp_ExtendWith_Outerplanarity, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_Outerplanari, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_Outerplanarity, __pyx_t_2) < (0)) __PYX_ERR(0, 253, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_Outerplanarity, __pyx_t_2) < (0)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":257 + /* "planarity/full/graph.pyx":272 * raise RuntimeError("Failed to extend graph with Outerplanarity structures.") * * def gp_ExtendWith_DrawPlanar(self): # <<<<<<<<<<<<<< * if graphLib.gp_ExtendWith_DrawPlanar(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with DrawPlanar structures.") */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_63gp_ExtendWith_DrawPlanar, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_DrawPlanar, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[29])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 257, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_65gp_ExtendWith_DrawPlanar, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_DrawPlanar, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_DrawPlanar, __pyx_t_2) < (0)) __PYX_ERR(0, 257, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_DrawPlanar, __pyx_t_2) < (0)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":261 + /* "planarity/full/graph.pyx":276 * raise RuntimeError("Failed to extend graph with DrawPlanar structures.") * * def gp_DrawPlanar_RenderToFile(self, str outfile_name): # <<<<<<<<<<<<<< * # Convert Python str to UTF-8 encoded bytes, and then to const char * * cdef bytes encoded = outfile_name.encode('utf-8') */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_65gp_DrawPlanar_RenderToFile, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_DrawPlanar_RenderToFile, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[30])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 261, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToFile, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_DrawPlanar_RenderToFile, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_DrawPlanar_RenderToFile, __pyx_t_2) < (0)) __PYX_ERR(0, 261, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_DrawPlanar_RenderToFile, __pyx_t_2) < (0)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":269 + /* "planarity/full/graph.pyx":284 * raise RuntimeError(f"Failed to render embedding to file '{outfile_name}'.") * * def gp_DrawPlanar_RenderToString(self): # <<<<<<<<<<<<<< * cdef char* renditionString = NULL * if graphLib.gp_DrawPlanar_RenderToString(self._theGraph, &renditionString) != OK: */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_67gp_DrawPlanar_RenderToString, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_DrawPlanar_RenderToStri, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[31])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 269, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_69gp_DrawPlanar_RenderToString, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_DrawPlanar_RenderToStri, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_DrawPlanar_RenderToString, __pyx_t_2) < (0)) __PYX_ERR(0, 269, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_DrawPlanar_RenderToString, __pyx_t_2) < (0)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":283 + /* "planarity/full/graph.pyx":298 * free(renditionString) * * def gp_ExtendWith_K23Search(self): # <<<<<<<<<<<<<< * if graphLib.gp_ExtendWith_K23Search(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with K23Search structures.") */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_69gp_ExtendWith_K23Search, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_K23Search, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[32])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K23Search, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_K23Search, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_K23Search, __pyx_t_2) < (0)) __PYX_ERR(0, 283, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_K23Search, __pyx_t_2) < (0)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":287 + /* "planarity/full/graph.pyx":302 * raise RuntimeError("Failed to extend graph with K23Search structures.") * * def gp_ExtendWith_K33Search(self): # <<<<<<<<<<<<<< * if graphLib.gp_ExtendWith_K33Search(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with K33Search structures.") */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_71gp_ExtendWith_K33Search, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_K33Search, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[33])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K33Search, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_K33Search, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_K33Search, __pyx_t_2) < (0)) __PYX_ERR(0, 287, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_K33Search, __pyx_t_2) < (0)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "planarity/full/graph.pyx":291 + /* "planarity/full/graph.pyx":306 * raise RuntimeError("Failed to extend graph with K33Search structures.") * * def gp_ExtendWith_K4Search(self): # <<<<<<<<<<<<<< * if graphLib.gp_ExtendWith_K4Search(self._theGraph) != OK: * raise RuntimeError("Failed to extend graph with K4Search structures.") */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_73gp_ExtendWith_K4Search, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_K4Search, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[34])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 291, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_75gp_ExtendWith_K4Search, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph_gp_ExtendWith_K4Search, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #endif - if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_K4Search, __pyx_t_2) < (0)) __PYX_ERR(0, 291, __pyx_L1_error) + if (__Pyx_SetItemOnTypeDict(__pyx_mstate_global->__pyx_ptype_9planarity_4full_5graph_Graph, __pyx_mstate_global->__pyx_n_u_gp_ExtendWith_K4Search, __pyx_t_2) < (0)) __PYX_ERR(0, 306, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "(tree fragment)":1 @@ -11462,7 +11868,7 @@ __Pyx_RefNannySetupContext("PyInit_graph", 0); * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" * def __setstate_cython__(self, __pyx_state): */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_75__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[35])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_77__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph___reduce_cython, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); @@ -11476,7 +11882,7 @@ __Pyx_RefNannySetupContext("PyInit_graph", 0); * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_77__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[36])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_9planarity_4full_5graph_5Graph_79__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_mstate_global->__pyx_n_u_Graph___setstate_cython, NULL, __pyx_mstate_global->__pyx_n_u_planarity_full_graph, __pyx_mstate_global->__pyx_d, ((PyObject *)__pyx_mstate_global->__pyx_codeobj_tab[37])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); @@ -11555,42 +11961,42 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 10; } index[] = {{1},{29},{44},{50},{49},{49},{48},{54},{49},{34},{39},{36},{25},{50},{32},{31},{31},{45},{4},{179},{77},{38},{29},{1},{2},{2},{1},{8},{13},{7},{6},{9},{2},{22},{38},{21},{43},{55},{48},{45},{45},{22},{16},{17},{24},{30},{22},{9},{50},{24},{14},{15},{22},{21},{22},{17},{23},{23},{22},{5},{8},{5},{23},{25},{16},{18},{19},{32},{34},{17},{18},{14},{27},{30},{29},{29},{28},{34},{29},{17},{24},{21},{13},{20},{20},{24},{18},{15},{17},{30},{24},{27},{13},{20},{33},{30},{24},{27},{14},{13},{5},{2},{20},{4},{13},{15},{8},{1},{18},{12},{18},{18},{1},{10},{12},{7},{8},{1},{12},{10},{12},{13},{26},{28},{11},{12},{8},{21},{24},{23},{23},{22},{28},{23},{11},{18},{15},{7},{14},{14},{18},{12},{9},{11},{24},{18},{21},{7},{14},{27},{24},{18},{21},{8},{8},{11},{3},{13},{5},{1},{8},{4},{9},{10},{1},{8},{17},{9},{12},{14},{20},{3},{11},{12},{10},{17},{13},{15},{6},{4},{12},{10},{12},{19},{9},{22},{23},{8},{11},{12},{1},{5},{1},{6},{5},{957},{38},{27},{14},{27},{27},{130},{14},{44},{44},{44},{45},{42},{69},{117},{27},{28},{80},{14},{114},{39},{11},{44},{50},{44},{44},{9},{64},{57},{49}}; - #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (2354 bytes) */ -const char* const cstring = "(\265/\375`\021\027EI\000\212^\360\023F\000\221\272\001\374?\337{\215:\326\267\216\257Q\307\327\250\343k\324\261~\034\356\215HdJ\266T\252O\336>'O\212\303\n\343}\257\377\317\207\246\335\347@\377\346|a\025\326\367\274\262\230\334=\234w?\013\2117\331\001\022\001(\001+\001~\203\030\304\365|\272\256\302\365p?j\327CV\270:\006\352\013\2029|e\216\302\265~\335\306.^=\313^\327\262\354~O\316\256\347\271\365\321>\314&]\333\377\323}\203\267\303_\344\240v\261\303\274\377\346\373~\221_\277M\272\013\003\273\356\\\334?\213\263.\302\272\036Uc\327\237<\021\205d_\317\272\025\3020\302\353N\376\217\354\231\347P\245\222;\351\312\376V\271\2621\367\330\005\271\3766\315E\331\277\251b|\367\357\357\350\376\256k\\\374\256\370[|Z\366\335\333\337=\246?\337\257\231\276\240\016w6}\002]\3040\021\267\370\362K\177\271\177\3147\016\277\216\275\346\373\223b\027\277\217\270?~\3639k01qb\271<\022\256\326\t%\202\344\341\222\353\304J)\241\260\\0\315\302\377\333$\333M\205\361\210\223\021'\256\223T\tU\342\221R'\251qD9y\315\372^\273\366\267\275\216\345.\376\026)\226t\255\"\242\274\3561M*aK\361mR\211B)-\321\305\302 \350\375\374\375\327\036\343\357\243g9\245\303m*\265P\236I\024b\235\230B\214X^\251\305*\271PNX^\312C\251R<\026\t\267L<\224\211T*!Qr\235H\234P\370\204\3534\362T\336\010\227LH%\354\362\310\217\017$\266\333\370\021\tC\022&\202\361\027\346]\333\375\207p\022\274\030\353\217\004u\307\370\376\220\3140\r^\221\203~\177\272Y\206\360\t\365+\2077w\035L\374\273\247\200Y\263Tt\352d\353\342K\026\333:\365m\372\373\276M_\233|\267\277\277<\346Q'=\357<\n?\215d\267\357HI\177\035j\322G\205\021\036c_\354\003\273\235\016\377\314\347\214\313JSA\254\322\006\250\353\364\316\030Y]\251\036r\352A\301su\312(\027\250\027uC6W""\346H\3715,\337\352Q\031\244*N\216\207\222\223Q\331y\302\227\266\002\230\026\316\246\365L\013\246\307\001\366\000\246\325\234\227\223E\251\340\014\235\000N\214y[9\220i\th8\332\0005\262\032Ra\240\"\264\203Z\240\251#5\223\222P\020\n\262\352`;\274u\263\252H9\351%\275\260a7\230\326\243\341\235\033'\315\264\225\035\230\026\232\231MO\211 \323\256\314\010\346\213\025\321Jf\000\207\251q1\027l\260\034\3479\033\307q\034\307q\034\307q\234\347R\034'\nq\034\007j\036\333\236\223\327\363a\341\366,\373\256\347\363\315}\200[\254q\037\025j^\223a\256\325\310\221\004\261\226}\257?\306\036\373.\366\2569\211\277\3561,\324\236w\362\353\316\305\3757\310m:\314$m\304x\024\307\317\007\253h\3141\211\371\3163\214g~\206\375\306\237o=\313\034\353p\303\370~m\024\216a\374q\022\206A\361\343\332\307rh\322\032\307v*P\016zAof'\344\004\315PKV=)\206\313\242J\016G\013R;x\260\036\230\026\305\t\366\304\006KsPj>L\215y\222\246\007\246\005\304\004`zX\255\234\365\262\242R\221\351`\203]\225 +\0046\332\313\003N\373\001\211h.\247\005I\300r\312~\361(`%\224~\345\200\201u\265\226W\024"; - PyObject *data = __Pyx_DecompressString(cstring, 2354, 3); + const struct { const unsigned int length: 10; } index[] = {{1},{29},{44},{50},{49},{49},{48},{54},{49},{34},{39},{36},{25},{50},{32},{31},{31},{45},{4},{179},{77},{38},{1},{2},{2},{1},{8},{13},{7},{6},{9},{2},{50},{22},{38},{21},{57},{43},{55},{48},{45},{45},{22},{16},{17},{24},{30},{22},{9},{50},{24},{14},{15},{22},{21},{22},{17},{23},{23},{22},{5},{8},{5},{23},{25},{16},{18},{19},{32},{34},{17},{23},{18},{14},{27},{30},{29},{29},{28},{34},{29},{17},{24},{21},{13},{20},{20},{24},{18},{15},{17},{30},{24},{27},{13},{20},{33},{30},{24},{27},{14},{13},{5},{2},{20},{4},{13},{15},{8},{1},{18},{12},{18},{18},{1},{10},{12},{7},{8},{1},{12},{10},{12},{13},{26},{28},{11},{17},{12},{8},{21},{24},{23},{23},{22},{28},{23},{11},{18},{15},{7},{14},{14},{18},{12},{9},{11},{24},{18},{21},{7},{14},{27},{24},{18},{21},{8},{8},{11},{3},{13},{5},{1},{8},{4},{9},{10},{1},{8},{17},{9},{12},{14},{20},{3},{11},{12},{10},{17},{13},{15},{6},{4},{12},{10},{12},{19},{9},{22},{23},{8},{11},{12},{1},{5},{1},{6},{5},{976},{38},{27},{14},{27},{27},{130},{14},{44},{44},{44},{45},{42},{69},{119},{117},{27},{28},{80},{14},{114},{39},{11},{44},{50},{44},{44},{9},{64},{57},{49}}; + #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (2412 bytes) */ +const char* const cstring = "(\265/\375`\021\030\025K\000\032_\020\024E\020q\335\000\000@\202\032\005\024\254@\005*P\201\nT\240\002\025\322\346\336\030d\247dK\245z\345\355sr\032Y\017X\270nc\224\177\241\311\314y\204\260v\316\231\010\202i\275C\001\247\356\342|\333\200\344\275'2\024\001*\0010\001\344%\t\251\240a \t\004=<\302>\230\347u\273\320\225\375\006/\210\213A0\213\270\035O\327q\255]\266\261\213W\313\262\327\264\034\273\337\223\262\353yfy\264\017sI\323\366\377t\337\340\355\360\0279\317\335\375\332_\256c\337g\315/)\332\356\313tG\333\277|\377p\223\256\373\022\257\327\336\347\360s\221\376\372\377i\027\272\347\033\352\020\032I\221R\227w\375\277\035j\327\0165\230c\377\352/\2424\027Q\372\353\244\350i\335%!oM\203|\337\027|\207\020n\327\373\265?=\372\373\363\351\224\202J\351q\345\222\360\375\275\006/H\343&\017\250a\3540\357\277\371\276_\344\327\357\223\356\276\300\256;\027\367\317\242\254\213\257\256\307\324\330\365'QB\240\330\327\263f\2012\224\360\272\223\377#{\3469L\255\344>\272\261\277Wnl\314\035vA\256\177Ms1\366m)\030\337\375\373+\272\277k\032\027\277+\376\027\237\216}\327\366w\207\351\317\267K\246/\250\303\235K\236\032\303v\027\361K\304/\276\354\322_\356\037\363\215\303\257c\257\371\376\244\330\305\317#\356\217\333|\316\033NP\230V-\317D\213e:\221\030y\230\3242\255TH)\253\326K\257\360\377\366\250fKa\\\002\245\004J\013\005E:\231x#\024\nj\034SL?$\275^}\257[\373\333^\303r\027?\213\024M\272^\021O^w\230\036\235\250\241\370.\245B \025\226\330Z\341\237\277\307\370\363hYF\351p\227H\254\223W\n\201V(\245\021\242\225Gb\255H\255\024\224\225\207\362N)\025o5\302\254\023\357T\032\221LL\220Z&\023\246\023N\3212\211\274\224'\302\244\223\021\t\267<2$DI\3156z.\204!\371\272\200\361\027\346M\333\375\217p\022\274\030\353\217\004u\307\370\376\220\314/\r^\221\203~{:Y\206\340\t\265+\2077w\335K\374\273\253\200Y\257V4\312T\353\242+\006\333\032\365k\372\373\276K_\237|\266\277\277\177\361\240{\251\r\302\314<\347\255{s\221\\/_l\312\202*\323R8|\006\"\377\031\320F$\262\344~0\342\246\375 \224\227]e\027U\362\320\366B\277\335\254S\2504%\265\246W\0236YTZ\207'\006g\254\203&y\366\266\2019\336T\253\346C\202p5$\021\226\260OP=\020\016F\227bj\231\265\263\036:\354\3655m\260\313N\257\n^\020AF\347\267\210\276\330@\240RE\260\016\342\263\022\343\205t&\036\272\250e\252@\tH$\367\322\360\311\240\242\222\225)\320\027n\037\304\027\355\326\223\266\202\232\312A\241\"\227)\020{\250\335/\262\0349\332W(\032\227\363+J\226\322\310\373\017k0\252\261\033O\177w\337\356\222\024\354\322\271I\262\236Z\304\224\\\356V\006\266\325 \360\251\245e\2463_\345\354\3673\373E\347Z\332\0235\361\325c]\313\032\333\234v\325\333\256\352\366\336\373_\340\236\016w\263]hr\201\314\261?o+\335\313\352\336\307\236t\273\227\336\251\207o\227\274\353y\371\325\177\332\336\024\276\341\363\277k\3374\277\355\374\363\374o\217\201iP\212D\241G\266UZ\241\254\226\201\313\317?\256Oi\025\327%\326\232\202>\202t\242\215k\316t\315\367\313\240\002\326\216e\024\212\236\005wr,\210Rv\022\022\2472\023\010&A\"\307)\345\314R\366\000\352\214\353\023u\003\022/\034\247\202`O\245W\246W\2270\263.\307\000U\241\n\204\243\000\225\276\256\317\025\022x\035\260\223\355W\001\274o\007\347\201\027\233\271_\215I\230Zb\332\333v\275\215Y\203\031G\270\244\321$_\353\211@\334\347\037z\332\266!M\t7\240\035\177!\301\"7\332'K\216\273\214\177-o\250\"\2115\344\231\323\201\3473\345\\-\245\226\364%\312\223\261\233\226T7\331\367\007a\205\352E\312E-\205~A\002'\033\217\200 \354Z\355\223\263\3162\275)\340\253\344\200t!1\201\202\220\230\035\325\247%\345u\200\222z\377\245d#\211\330q \311\013d\033\361!\323\255\243C\367\031\234h\307L\0205\241a\233\007\363\330\0345\004p\025\246U\325\343^\031\354\237\217\352\036\002\016\276\245`Ed\303\347;\221\236:\230\342$k)\030*Th\346%\311\354!\005\343\031\017\014\255AK+\325\346D$o:(\031_\002\n\014e\000\202\031"; + PyObject *data = __Pyx_DecompressString(cstring, 2412, 3); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (2526 bytes) */ -const char* const cstring = "BZh91AY&SYun\220\347\000\001\252\177\377\355\376\377\347\377\377\377\177\277\377\377\376\277\377\377\377\300@@@@@@@@@@@@\000@\000`\n\035\257\263\266\264\353wWt\255r5M\014-4\022\245\005\270\031\206I\005OM\031OOM4\324x\247\223JyO!\352h\217Di\243#C\020\310\000\003F\206&\230FFG\251\352h\323\321\004\222\022m\004\323D&# \r\032\032\000h\032h\000\001\240\000\006C@\r\003F\020\320A\246&&&\002`&\000\000\000\0010\000\004\300\000&\000\000\000\002h\022\024&\240\251\351\244\330\323I\3514\233Q\352h6\240h\310\320\006\200\006\200\r\000\000\364G\222\000\0004A\246&&&\002`&\000\000\000\0010\000\004\300\000&\000\000\000\002h\022(M4&\201\240A\240\217A\r'\211\246\244\320h\320=@\006\200\320\000\000\000z@4\003\260\0307k\261c\247\272pt\275\374U[\375?\221_\202\361afY\364\036:A\310\376\\\205\014/ 1\243\371\316\317\r\r\024I\372\321{\244_\266{\345\007\247ii\003\311\254\177\222\251\356\352\334Cm\214\032i\241\264\306\330\323K\035\220l\253N?\"\242XV\322J%\266[ \272\265\2707@\220\"\025g\226:\0222g\272&h\363\241\273D\225\026R\240\037I\031g\221)J\246\241S\025,\306\035$\354Fw!\344F\t\324\226\335\211E2\2726\"Q\031\266\224J?\016U\252\315\324\364\206\314m\200dag6K\220H\351\231\204\310\370\006u\324\251\211YZ\n5\302ZE\377,\205M\357\242\315*\354\3422e\2643\346\310\260\226\200Zl\240\260\243\021\rFhW\217$\005\23602e%]\363Z\010J\244V\301\333\255\032\311*\237\223bR\357>\267\005Mn\253\020\220s\016j\037\n\3740j\256\252R\024\017\236,\3717On\331\261F\271E\026\316y\317n\245\031\013\036\006\236^m\335\013\240\310=(4\0108P\036\231$aa\337\213\334\261\222/qL\n]2\234(v[d\343\n!\026\376x\334\247)\273c,g:L\267\344\325B\255\354\326\025{o1z\336\262\034.\270\214c\025\273\251m<|\212/]\201\230(\266\0373A!j7Y\033\031\007\004\nE \335\023\005\200i\232\254n\324\020:\271\002\363\nNTd\356\3519,\316U\026Z\n\013\001\210`\336\270\364\372\276\035)\326Q\231\301\026\342\227\361\331?7\312\021\n\232oI\332\035\273<\035\373\356U\033_\036AdZw\226xc\r\346\203\2415\311\267O`\273N\30666>1\0106\016k\264l\325\274\252\205\267;\270\353\255<\343\002\364\020\323\250.\333\224@h\007q_(\037\007.N./MB\013C\323\243v*\364|\237n\013R\325\3202\344c;\223a\231\207\220bl2\264\001V\204Xb*\203$H\325\275Sk\274\302\311h\025\224\000\210xv\036\244B$_V\277\357\356\245\354\316\003x\355\2058\261\370%9W\2222\275\335\307\000\267\270\214\260\224-F\303\241$\210g\016\257\177e\342\307\203\221i\212\nk\314\347AWn\351\006}\245\037\273\244\024qR+\005{\241\331Hc\"G\337\325\265\255\rr\204\"\322\306\3075\014\207\224\000T\25503\002`\241\242\303\332\216~\024R\261\303ATDy\371\372P\035=2\214;\343\021I\201\026<\233\305\340\264d\337\030^\021\313\214\207\024\002\210\235b\336\222\t\206\364\025\324\262\210\"=\246\212\252t9a\272\373\313H\nA\247F+`\262=\266\250\350(\020r@L\225\224B\245F\223iB\255@\023\213\217bp=U~7\n\314\254Q\032\245\320`\3003\r\334\247\240m\212~8#\t+^#\0053\003zY6nW,\312\340d\231\210\366\234&\270\204\354p\326\256\361\267sh\307\250[\331\264*\"\255&\360R\000S\205U\312\022\027V\260\302\000v\300{h,@A\251\222\370\260\007\354}\0243\341\003\331\t\370\304.a\357\322\n\t \330\021\367\270i\361\357\323\306<\220\305\267\260b\260\365\307\330q\3761\004\200b\242@\374\210\210\037\301\027\331\230\036\233\373\365\177\276Zo*,L\336-\265]\005\326\205\027\031B\341\212\024G\333\020\005!H\036\303\t\000U\272\220\007\245\277\326\301i\370\014<\027\336#\271\231C\307F\277 \343\263\226\211>~KN\265[\240\325\226\333\326\247m\301CB\227K\033q\277T6g\355\270\345\206\242\352[\276\310\227Dxg\023\313\031\003F\310\037\254\351\330\025\362\264\354\320\037\214\330\331\017\240\034\3644%D\353TU\242\275[\323\002\336\326~\033\307y\205\344\267S!\216\353\twL1\rO\361\322\024\263\036:\322\227p\033\n\342\254v\244\317-A\341(\313\024+\257z:S\215.#\275 \361\366<\350\206f[w\203A\245\224-}\022\336{\277\253\270_\033\2116\347\023v\333\217?\30772I%\244\371mR\213\270\303\t\345(\302\020UZ\227\263\305\347\2107\303\177A\216\205=\251D%j\355\374\236\r\340(O\2150\306\247 \n\017\277L\321\375\233\215\232c\241\344\244\330H\243{*0+\345U\3246\3458\224:1\267#!\\ \244\254\313\026\202\261I\244\216\257\256\334\027\320\273\244\215\276i\247^k,\241\232\032\332E\020\213\177\032y\016V\254\014\261\234\351\014\270\3656P\263{\222\201'\312\367\211\312r\220\341u\304c\030\256\347\201q\235<\212/~\300\322\024[\017S2C@\\\235*r\034\234\207'#)@\3065\246\273/-\302*\2170O\303\2532\3136]\370-YCez\210\021\013\306\r\354\217w\315\313\274\234\3123P\"\333\345\3756\327\327\364\204BZd\251\231\003!R\326\305T\364\262/Q\322h\215\242\320Ug\335\240\025S\006\233&\263b\rq\262\032\350HHR\022\r\215\275\230jAz}\344\324\240\356l=)\366\3105h\243\241n\351>j\r!\267\305\306\231\306,\264v;\036\335B\013C\333\317\232\371\347\351\373\220[\353\177\2722\344bx\301\260\322\303\27616\005\315\000I\241\025\014D\220[\004\214\361\262mr\357\202[\202\301@\n\r\3761\252\202\212}~\216w2\336]\340\336|\263&\236\346\211\345\351u\237\000\333\236P0u\365Q\350\005\332\245^!\001P\267\266\330\014\023z\352\202\353./\313\370|\371\006Zu\240\367\264*\036\344*\025<\311\031\tl\377\037e!\236\255Q\340\307\301\222\033\rW!\032\027\235\347\234M\017$\000\2474\300\322\t\202\206v\036\264uq\242\223\0343*\210\216\276~\200\016\216\217,a\010*\230I\210\213\036\216\003\000Y\350\341\0320\010\3042\304\217b\001DN\261pI\005a\301\005u,\242\010\217q\235U:\035\250sa\201i\001H7\214\357\252\265k\355\215E\304P\010\016\020\200\231-)%V\023I\215(Y\250\002t\350\344\200\341\332.\026.\0232b\210\321\336J\264\232\022m\t\316\302\242\251\n\023\303\2506\234\007\034\321\235\255\014\312\315\331&\334Zo \326}\3140\33716\3369Xa5\251*6@\"\246\022d\245\245,\205\002dZ\301+\223\003\n]\214<9&dl\200\357\202\227j\323\017\177\263J\213\"E,X\177\221\241E\0305\300\226\330J\320(\356\224\261\241\221\027\251\253""\332\323\362\023\016\350Qg\206\027\314-\276\315\005\362\201)K\027TP*\027\t\335\311B\247\341\326\333m\266\330\306\334\005\204\t\006\243i\344cH\331\233x\223\300Q\223z\341\006\372\325\267\231)\2346\237\035\010f\320\327\013\231^\323\002\353\233\006-.H\330.\312\362\355\3022\022\211\266\026\322\005\317\273\374\235\365\200\336<\213gK\200b\023\030\201\214W\275\321\356\361\261\302\275J\317P\351d\251$\315[5\014%\352\365$\275f\251\312\223\211&I$\222KI!1\234J\265G\222l\325VLmRZ\252\246I*NT\225&\211\033#\315D\274\231d\274\227\220\231\220qY\206\253\347\262i\2616\270\213%K\256+\r\211\305ZV\320\232\211\306\204(\232H\202\0068\261\217d Qh\310\231\004\303\241\366\242p\372\033\202\"\356p\356+H}wK \331\343\251\246j@\241\333\2729\300\222\326\213\342s\335\271\275pK\005\216\375\205\200p~v\217\320\311\010\233Jw\206\247~!P\264G\207\004\030\205\275)|\241\004\212\352W\2151\246\306\333\033wC\"\236)\205lc3\225F\030\372B3m\260m\320\356\233\351\255\215!@v\013*F\030t\231I\007a\247\231\304\261\230\362xu\265\265]\225\323\006\236\000\245\207tx\310\266\354k\274\rB\270\020w\025\027\324\034\341D\"eq\256LL\221!6\n\"\024\020\346C\226\330\024\244\020\247j\203bVm\2327\351\2151\n!\02666\301\203\274\332\005\030\224|\"\317\266\331z\277yVt\026@\2002\256\375\016\030\303\314\017\207\230f\275\002\2568TVWx\255\337\364D\0363\214\312gB\r\241\304\t%\263\211\006\232f\221(\337RI!\330n\335\256&\025\236\212\016\026Qpc\320{\3077\266}\252\026\253Z\345\2070\357\260\230+\217_/\016&6D\304\022AAM,\\\265\240m&\201\r44!\261\203\007\340+\301\032\017U\004\023zI\347\230y0\367D\311Y\304u\256^5\321f\212\261\355\260WD\225\024-P\024E?\305e\014 \203XvaR\240R\201\332\2450\313\230Q\014\014\253\002 0|\275\030\261\256\013\377\305\334\221N\024$&O)\374@"; + PyObject *data = __Pyx_DecompressString(cstring, 2585, 2); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2346 bytes) */ -const char* const cstring = "x\332\225XKs\333\310\021\006kU\t\355(ei\245]9U\266\005m\354\320z\230\016W\332-\307\217\270 \222\322rMS\024I\331\353\304\251)\010\030\222XS\000\205\207\036\211\235\354QG\034q\304\021G\036q\344\321G\034y\324O\360OH\317\000\004\001\021\244wU\022\210\351\307LOw\177\335Mewx\251\203E\026\037\035\302S\222u\334R%\375\234\025\332Xx\227\r\230\272\302\n\212|\202U\235\315\263\232\256Jr\213\320\252\347z[\221\003BD\026\237\351X\026\331\226\312w\333\354\251\244\267\331\202\312\237V;\274\314\253D\332\020tC\305\332T\215\027\337n\3261\257\n\355_\255\260\371[\025\266~\233\374\236\241c\265K/A\034\364+\265\252\323\025\272Xm*\352Q\340~\005\226\274.)rDB\205\r\261\352\013\210\201\343\363\343>O\022k\002\223\315\354Rc$\215\225\025\035\002,\351\022\337\221\376\215\305lI>\2017\221\025\261\246K2=\327\267\3741{\n\037]\034\\\244J\224+\007\345r\250\341\337\217\030\316\353\254\326\305\202\324\224\340\360o\206\374\216$\277\203\243D|F\204X\203\254\037\263\231\t\354\223+lM1T\001\177\306\224\212\"\343\212\242cVo\203\ry?\023\201)\342\216tH\274\210;\324\345\222\000Q#B2[-V\037l=\332by\210\220\212\177\306\202\256\261\232q(txM\303\032\2534\331CC\352\200+X\375\274\013QbKM\366\\1X\031\007\261\002\271\250\202\336\306\220\374X'/l\206\227\301\277\324\211\010\324!\002\031V\224T8D:\301D{\207\357h8[\367\357FL\030s\273\306\036\031\232\316\266y\242\000[j\374\021f\025\225\204\225\002\260{>t\202\237J\303\315\374h\264y?\302\207\030\254\212\206\371@\346\017;\324\004^\004\234\213-\314\33676\330\223U\366\031{?\223\311n\260\317\201\201d\342Lb\027\r\007\360DI#\212\230\252g\330&M\265lKhuQ\036l\241iu\1775\244wQ\001w\260\216\213p@H~\014\226\370A\245\347f\210\224\321\035W%J%\371@\233\250\351g\013\321/\312\032`\210(\344\371./\000\262B\035rG\022\017\252!\004\\B\004\265]\254\357H\252\246O0\217\32468\200\324?\377\030\220\257`\251\325>T\324\317\333D\205\317\364iW\037\t\227 6\343\036\250\340\323\330\272\206y1Fx\rE\204\354\016i\352\007\034\356\225\311\014q\315\263\261{t\370C\334\311~3\344\002V\210^\246\305\037e\262\222\346\207T\224""\025\310\301&ott\026!\025\213\206\200\021bE\203\346\212\254\310\017\000='\220E\300\025HB!\024V\277\207M\243\323yH\355\310v\317\317\236\372\345\310\007\356\337W\375\312g\004y\3045P\261\260[Dy\256\312\345K\2157\250\\zYj\024_n\027\013;en\267\216\n5\356u\265\314U\270Z\204\270w\320(\326\306\250c\204z\221\253\345\177\330\331\253A\277H$o&\223\267v\270r\275\270\003\316\255\000\312h8\350#\033zB\240%\005\241!\031\022K\003|_e@d8Q$\221\017\327!:B\312\010\031#R\330\021!\324\244t7\024b\3154~\235:y$\021\000)$\204 \032QH7\030\255\306\2203b\321\276\365\032\302\02698\211\033\266\345D\346\3464\346\326d^\274\265&IT\307\230;\200\250\230G\001\204\211w\213\"?J\254\304\026\001\326\343\264\2631\245W\024_\005\030\222\360\210\036\"zD\321b\212%\315\327\013\te\345\024\253\333\212\341_\241\256+*\037\021\217s\265\004:\331N\022\",R.\"\013i\314\242\006t\033\232\0165\254\001\342K\303A/\0248\200.;\331\2448WK\240\217\231D\013Ve\257B\361W\340\266\313\305\312^c\357\305\336\013\204\252\347g\360W\200\336\214\210\223k\270\331\250\035\024_\327\240, \256\360c\271To\204\213\227\\\243V\372\311_\356~\317\363\332\271,HJVPT\305\200\376\2115:\251\002j\311\265\004\2509\030I\320\202U^\300\207\274\360\216\264M\2444\221\242J-D\013\026\2463\322N\207oi\364-P\305\262\240\210\260BMC\026\020j\301\357\020\361h\004\362(\274c\300\236\014\351i`\216\3008\n\340!t\023A;\t\256\023\200:\001\242\311\340\234\006\313\t\200\214@q\034\204W\340\027\340*\016\2718\330\306a\026\005X\010\255\010\250&\301i\034H\211\020\n\300\023\207\315\024\300L\202\3128H\022\3411\004\006M\305\262t(\311dJG2t!\030>\220\244\2410\263A\352H;B\350\210\207\204FG\220\235\344\017\2214\245K\003\364\020p\210.<\361)\"\223\006\032\016>\204@O\201\335\3023\302hfI\007\217\257\262T\272\253t\241\321\003@\203\334?6\370\216\177\302hH\030k\222!\001\237\221WY\224\310X\353\347\270\212\341K\217\254\341N\2236\321\300\\x\013\206\217HkE\tmVS\005\377\032\341\0132d:\216`UUT\177\362@\376\327S\215L\337\224\214\220\016\361\203g\033\017\233<\274\322\330\"\321\350\032t89\201\231\311\300\032""\035x\203\311\372\276\377\271\312\014\327'\212$\2562\020\232\021+\366\023\341l\300\227f\370\202\273\266\232H][M\242n\220\221\363\ngxN\0021I\234R\222\355\201\305\004\215+\217+\002\206\254I-\331\377\177\300*C\\0\344\221\333E\327\340\250Q\tc\3749\226\231T\241\230\t%\212\231P\243\230\344\"\305L\253R\314\2042\305\214\027\247\200Ta&U\220q\206\306$\326\020fRQ\030g\\\221\215\3560\241\1770A\205b\2465\022fXW\230h\207b\246\3241&\326\276\230h\373a\022\373\016s\245\2303\3612\316\304\35383^\310\231h%g\302R\316Dj9\023\351&\314\250\3532\303\206H\371\301V\221r\355\315\334\264R\237\322\314\265\331\213\255\213\377X\177\266\366\007\263_\232\033\026o\035_\246\227\3143\353\330\236\261\271_\270Az\301[\370k/\325[\354\275\355/\364\271P\212\260\226\274%\237\265\037\010\256;9\247\320\233u\363\356qL\020Xk\316\212\263\345\274w7]>\302\372\364\273q\013\006s\363\204|}0{\343\342\334J\333_\330\2336\020\2776\177\266S\366\374 }\303\273\261l\321\375\327,\016\204\007\013\213\227\351?\300&g\246\006\333\274\261\333\016?\342\222\255\026\315g\240\272h\277\355\375\311\335\350\013\037\347\257\336\3027\216\256\310F\272\371\330\332\267\370\320\236Gn\312\245\033\3354\377k\357\333\242\263\321\343'\311>s\367]\336\227\375`sv\303\271\345{'I\366\271{\334O\371\262\377\263y[w\236\366\"6<\205\030\244B\331\355\376J?Ge\275\245\214}\354\3148e7\225,li\366\212\235\273\034]\354\275\233\233&9u\017\363\275\235\263\013\316l/?\264\355{s\301\3346E\353/\020\231\\h_\2567\337[\271\374\034{\301|\002{\353\366SG\353e\334\005w\267\277\331\037\371\343\241s\334\233\351q\336w;}\276\177<\230\273\023\311\237\r\207s\032\275[n\275\237\212\247V\030\333\005bb\214w\317\336\217\345\357\274\267]\367\352\257\274W\257#\311~m0\273`>\2673\316\274\263\002\311u\361\301\342F\2118X\272y9;g\246\314\371 S\0368\373\216\330[!\253\257\314\237\274\333\017\035\203\036\273\234\3612O\334\357\372_\364s\203{\017\234\177\271\367\\\255\2772X[\367\235;J\327\315^\256\307}\272\316\\\273c\275u\226\3000\310h\210'q\315\337,\316j\330\267@y\275_\3778\n=\tb.p\303*\230y\327\351x""\217_~\254{\325\010d\006s_\232+&\021\233[\036\202\3672}\333\372\247\363{\360jj\220\276ks\344\220GV\316*\330\263\316\217=\301\215\342\200\310^1\310[\310:\274\243\367\236\272\037>\346?\016]\353-\027\373\373}\232\377\327\006\177\274q\241\231w\275\2577\000\366)\262R\315E\357\253u\002\246\301\"\033\004f>.\373\020\266\314\205\262Y\342\316\301\342\235 -\216\177I\rf\256_\254\233\373\336\314m(\t\351\255^\271\237\352/\366\367\211#\237Y_X4\247\326\t\216.\323\313\226a\303\205\241\224Y\363\326*\311\344y\3636a\334\2708\366f\336xo\3761H/{\313O\334\334`n\321,{\354\267\275\r\227\277\014v\332\264D\373\001$\342J$\033\250\342\032\311\204e\353\334I9\213\316[p\323t\205\377\003F\335\000\207"; - PyObject *data = __Pyx_DecompressString(cstring, 2346, 1); + #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (2401 bytes) */ +const char* const cstring = "x\332\255X\315s\333\326\021\007\307\232Vv\325\261\031)\2213cGPb\227\326\207\3512RS\327\037\311@$\2452\246)\212\244\355\270u\007\003\001\217$b\n\240\360!\211\255\335\346\250#\2168\342\210#\2178\362\250#\216<\352O\360\237\220}\017 \010\020 \035\317\324#Ax\373\365\366\355\356o\367\301\331]N\354 \201FG\207\360\024%\r\265\024Q\353\321|\033\361o\263>S\223i^\226N\220\242\321yZ\325\024QjaZ\265\247\265e\311'\204d\321\231\206$\201n)\\\267M\237\212Z\233.(\334i\265\303I\234\202\245u^\323\025\244\316\324x\366\355V\035q\n\337\376\315\n[\237\252\260\375i\362\373\272\206\224.9\004\016\320o\324\252\316V\350\"\245)+G~\370eXr\232(K!\t\005\014\"\305\023\020\374\300\347\3431O\022k\002\223\316\354\021gD\225\226d\r\022,j\"\327\021\377\215\204lI:\2017\201\026\220\252\211\022\331\327\363\374\021}\n\177\272\310?H\025+W^\224\313\201\206w>\3548\247\321j\027\361bS\204\315\277\036\361;\242\364\026\266\022\320\031\026\242u\274~Dg\246\260O&\330\252\254+<\372\210+\025YB\025YC\264\326\006\037\362^%\002S@\035\361\020G\021uH\310E\036\262\206\205$\272Z\254\336\337~\270Ms\220!\005\375\214xM\245U\375\220\357p\252\212TZn\322\207\272\330\201P\320Z\257\013Y\242KM\272'\353\264\204\374\\\201\\XAk#(~\244\341\027:\303I\020_\022D\026\324!\003\031Z\020\025\330D\316.\321\340}.&\202\332\036\322vEE\325\246\234\013wJ\330\000wSo\033\220\257 \261\325>\224\225\217\373D\204\317\264Y1\033\013\227 \323\361\320U\320id]C\234\020!\274\202\226\204\255C\321{\345\003\347\312dF]\202\243#\347\350p\207\250\223\375z\304\005\344a\275L\213;""\312dE\325\253\036A\222\241\242\233\234\336\321h\226U\220\240\363\210eiA'y\222d\351>`\361\004j\022\270<.O\226\rz\351\203\246\336\351< ~d\273\275\263'^s\363\332\300\367k^\037\325\375\222e\032l\261\260Wd\363L\225\311\227\032\257\331r\351y\251Q|\276S,\354\226\231\275:[\2501\257\252e\246\302\324B\304\375\027\215b-F\215\021\352E\246\226\377\373\356~\r\246O\"y+\231\274\275\313\224\353\305]\010n\0050K\322A\036\331 \022`3\361l\341\206\020&V\"\013\277\005Dig1\245\227\004v\005\270\211\2411=\000\372\230\242F\024K\252\247\027\020\312\362)Rvd\335;B]\223\025.$\036\345\252\ttlN\344C,\334EB\0131\346Q\003F\032)\207\032R\241\021\224F\267\311@\340\005\214\362\351.E\271j\002=\346\022\351c\225\375\n\201e\201\331)\027+\373\215\375g\373\317X\266\332;\203\337\002\\\000X\034\344\032j6j/\212\257j\320-X\246\360c\271To\004\213\347L\243V\372\311[\356}\307qjO\342E9\313\313\212\254\303\220F*\271\016\003\230\361\261xhE\210\025a\316+\034\217\0169\376-\236\315\254\334deEl\261\244\217!r\021\333\355p-\225\274\371\252H\342e\001VlS\227x\226m\301\317\250\021\260c\354\207Q\037\301\373t\244\317\302x\010\3351\\\207\021=\302r\"\212\247\341w\nr\247`6\031\255\263p:\005\241!l\306Q9\201G\037hQ\014F\321\027\307]\030q\001\326B(\233\206\2578\262\0221\345\243)\212\243\031\010\232\206\2358j\022\3612B\n\251\315\262x(J\370\333\200\205J\200\3355VT\331\240\324A\352H=b\331#\016*\234=\202r\305\277,\256[\262\324A\217\005\016\326\205':e\361\215\204\035]\2200\201\354\002\326\202=\202lf\361\244\217\256\262D\272+w\341B\000\210\365\301p\254s\035o\207\361e\"6L\003\002:\303\257\222 \342\313\264W\364\n\202O-IE\235&\031\266\276\273\360\346_RB#\230M\030\307\252\302{\307\010^X]\"\327\026\244(\262\342\335PX\357\243X\305w~BfY\r\362\007\3176\032]\006\340\225\344\226\025\364\256N.1'p\267\322\221J""\356\340\376}\376\236\367w\215\032\255OdQX\243 5cV\344_\210\263\t\237\352\360Y\275\276\226H]_K\242n\342\253\351\004g\264O\0021I\234P\222\375\201\305\024\215\211\307\244\313\272\244\212-\311\373o\2105\n\307`\304\303\307\013\257!R\343\246Fy\027^jZ\213\242\246\364(jJ\223\242\222\273\0245\253MQS\372\024\025\357N>\251BMk!q\206J%6\021jZW\2103&d\303\026\246L\024\312oQ\324\254\321B\215\032\013\025\236Y\324\214FFE\006\032\025\236?T\342\340\241&\2729\025\355\343T\264\221S\361NN\205[9\025\364r*\324\314\251\3208\241\306s\230\212\215Kj4#\211\206o<\324\301\335\271\233f\352\3037~ro?\260u\262\355J\306\315) with ulink = AT_EDGE_CAPACITY_LIMITEMBEDFLAGS_DRAWPLANAREMBEDFLAGS_OUTERPLANAREMBEDFLAGS_PLANAREMBEDFLAGS_SEARCHFORK23EMBEDFLAGS_SEARCHFORK33EMBEDFLAGS_SEARCHFORK4FALSEFileNameGraphGraph.__reduce_cython__Graph.__setstate_cython__Graph.gp_AddEdgeGraph.gp_CopyGraphGraph.gp_DeleteEdgeGraph.gp_DrawPlanar_RenderToFileGraph.gp_DrawPlanar_RenderToStringGraph.gp_DupGraphGraph.gp_Edg""eInUseGraph.gp_EmbedGraph.gp_EnsureEdgeCapacityGraph.gp_ExtendWith_DrawPlanarGraph.gp_ExtendWith_K23SearchGraph.gp_ExtendWith_K33SearchGraph.gp_ExtendWith_K4SearchGraph.gp_ExtendWith_OuterplanarityGraph.gp_ExtendWith_PlanarityGraph.gp_FindEdgeGraph.gp_GetEdgeCapacityGraph.gp_GetFirstEdgeGraph.gp_GetNGraph.gp_GetNeighborGraph.gp_GetNextEdgeGraph.gp_GetVertexDegreeGraph.gp_InitGraphGraph.gp_IsEdgeGraph.gp_IsVertexGraph.gp_LowerBoundEdgeStorageGraph.gp_LowerBoundEdgesGraph.gp_LowerBoundVerticesGraph.gp_ReadGraph.gp_ReinitGraphGraph.gp_TestEmbedResultIntegrityGraph.gp_UpperBoundEdgeStorageGraph.gp_UpperBoundEdgesGraph.gp_UpperBoundVerticesGraph.gp_WriteNONEMBEDDABLENOTOKOK__Pyx_PyDict_NextRefTRUEWRITE_ADJLISTWRITE_ADJMATRIXWRITE_G6aasyncio.coroutinescheck_resultcline_in_tracebackcopy_of_orig_grapheembedFlagsembed_resultencoded__func__g__getstate__gp_AddEdgegp_CopyGraphgp_DeleteEdgegp_DrawPlanar_RenderToFilegp_DrawPlanar_RenderToStringgp_DupGraphgp_EdgeInUsegp_Embedgp_EnsureEdgeCapacitygp_ExtendWith_DrawPlanargp_ExtendWith_K23Searchgp_ExtendWith_K33Searchgp_ExtendWith_K4Searchgp_ExtendWith_Outerplanaritygp_ExtendWith_Planaritygp_FindEdgegp_GetEdgeCapacitygp_GetFirstEdgegp_GetNgp_GetNeighborgp_GetNextEdgegp_GetVertexDegreegp_InitGraphgp_IsEdgegp_IsVertexgp_LowerBoundEdgeStoragegp_LowerBoundEdgesgp_LowerBoundVerticesgp_Readgp_ReinitGraphgp_TestEmbedResultIntegritygp_UpperBoundEdgeStoragegp_UpperBoundEdgesgp_UpperBoundVerticesgp_WritegraphLibinfile_nameint_is_coroutineitemsm__main__modemode_code__module__n__name__new_edge_capacitynew_graphoutfile_nameplanarity.fullplanarity.full.graphpop__pyx_state__qualname____reduce____reduce_cython____reduce_ex__renditionStringreturnself__set_name__setdefault__setstate____setstate_cython__src_graphsrc_graph_uninit_errorstring_conversion_error__test__theFileNametheGraph_dupuulinkvvaluesvlinkgraphP (graphP)\000graphP (void)\000int (graphP)\000\000\000\000\000\000\000\000\000\000\000\000\000\000int (graphP, char *)\000\000int (graphP, char ""**)\000int (graphP, char *, int)\000int (graphP, graphP)\000int (graphP, graphP, int)\000int (graphP, int)\000\000\000\000\000\000\000\000\000\000int (graphP, int, int)\000int (graphP, int, int, int, int)\000int (graphP, unsigned int)\000void (graphP *)\000void (graphP)\000gp_DupGraph\000gp_New\000gp_ExtendWith_DrawPlanar\000gp_ExtendWith_K23Search\000gp_ExtendWith_K33Search\000gp_ExtendWith_K4Search\000gp_ExtendWith_Outerplanarity\000gp_ExtendWith_Planarity\000gp_GetEdgeCapacity\000gp_GetN\000gp_LowerBoundEdgeStorage\000gp_LowerBoundEdges\000gp_LowerBoundVertices\000gp_UpperBoundEdgeStorage\000gp_UpperBoundEdges\000gp_UpperBoundVertices\000gp_DrawPlanar_RenderToFile\000gp_Read\000gp_DrawPlanar_RenderToString\000gp_Write\000gp_CopyGraph\000gp_TestEmbedResultIntegrity\000gp_DeleteEdge\000gp_EdgeInUse\000gp_EnsureEdgeCapacity\000gp_GetFirstEdge\000gp_GetNeighbor\000gp_GetNextEdge\000gp_GetVertexDegree\000gp_InitGraph\000gp_IsEdge\000gp_IsVertex\000gp_FindEdge\000gp_AddEdge\000gp_Embed\000gp_Free\000gp_ReinitGraph\320\004\030\230\001\360\010\000\t\014\2104\210{\230#\230Q\330\014\022\220,\230a\230q\340\010\027\220x\230q\240\004\240A\200A\330\010\023\320\0230\260\001\260\024\260\\\300\023\300A\330\014\022\220,\230a\230q\200A\330\010\027\320\0270\260\001\260\024\260Q\200A\330\010\023\320\023+\2501\250D\260\014\270C\270q\330\014\022\220,\230a\230q\200A\330\010\023\320\023*\250!\2504\250|\2703\270a\330\014\022\220,\230a\230q\200A\360\006\000\t\014\2104\210{\230#\230Q\330\014\022\220,\230a\330\020\021\360\006\000\t\n\330\014\017\210y\230\010\240\003\2403\240a\330\020\026\220j\240\001\240\021\330\010\017\320\017\037\230q\330\014\022\220*\230A\330\020\021\330\023\024\340\010\013\2104\210x\220s\230#\230Y\240h\250a\330\014\022\220*\230A\330\020\021\360\006\000\t\024\220=\240\001\240\024\240\\\260\031\270,\300c\310\021\330\014\022\220,\230a\230q\200A\330\010\027\320\027*\250!\2504\250q\200A\330\010\013\2104\210t\220:\230Q\230a\330\014\022\220,\230a\330\0208\270\001\270\021\360""\006\000\t\030\220~\240Q\240d\250,\260a\200A\330\010\013\2104\210t\220:\230Q\230a\330\014\022\220,\230a\330\020=\270Q\270a\360\006\000\t\030\220}\240A\240T\250\034\260Q\200A\330\010\013\2104\210t\220:\230Q\230a\330\014\022\220,\230a\330\020?\270q\300\001\360\006\000\t\030\220\177\240a\240t\250<\260q\200A\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\330\020B\300!\3001\360\006\000\t\030\320\027'\240q\250\004\250L\270\001\200A\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\230s\240!\2401\340\010\027\320\027*\250!\2504\250|\2701\200A\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\230s\240!\2401\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\230s\240!\2401\340\010\027\220|\2401\240D\250\014\260C\260q\200A\330\010\013\2106\220\023\220B\220d\230&\240\003\2401\330\014\022\220,\230a\330\0201\260\021\260!\340\010\013\2106\220\023\220B\220d\230&\240\003\2401\330\014\022\220,\230a\330\0201\260\021\260!\340\010\023\220;\230a\230t\240<\250s\260'\270\023\270G\3003\300a\330\014\022\220,\230a\330\020/\250q\260\004\260A\3205F\300a\300q\330\020\036\230a\230q\200A\330\010\023\320\023,\250A\250T\260\034\270S\300\001\330\014\022\220,\230a\230q\200A\330\010\023\220=\240\001\240\024\240\\\260\023\260C\260q\330\014\022\220,\230a\230q\200A\330\010%\240Q\330\010\023\320\0230\260\001\260\024\260\\\300\021\320BS\320SV\320VW\330\014\022\220,\230a\230q\340\010\t\330\014\023\220?\240'\250\021\250!\330\010\017\210}\230A\330\014\022\220,\230a\330\020\021\330\027\030\340\014\020\220\001\220\021\200A\330\010\027\320\027-\250Q\250d\260!\200A\330\010\025\220X\320\035/\250u\260C\260q\330\037'\320';\2705\300\003\3001\330%-\250]\270%\270s\300!\330*+\330\010\013\2104\210q\330\014\022\220*\230A\330\0203\2601\260A\360\n\000\t\036\230\\\250\027\260\001\260\021\330\010'\240q\340\010\023\2209\230A\230T\240\034\250]\270+\300S\310\001\330\014\022\220,\230a\330\020*\250!\2501\200A\330\010\023\320\023)\250\021\250$\250l\320:M\310S\320PQ\330\014\022\220,""\230a\330\020\021\330\020\022\220!\2201\200A\330\020\037\230q\240\004\240A\200A\340\010\035\230[\250\007\250q\260\001\330\010$\240A\340\010\023\2208\2301\230D\240\014\250J\260c\270\021\330\014\022\220,\230a\230q\200A\340\010\035\230\\\250\027\260\001\260\021\330\010'\240q\340\010\023\320\023.\250a\250t\260<\270}\310C\310q\330\014\022\220,\230a\320\037E\300Q\300a\200A\330\010\t\330\r\017\210s\220$\320\026,\250D\260\001\330\r\017\210r\220\024\320\025+\2504\250q\330\024 \240\001\240\024\240\\\260\021\200A\330\010\t\330\r\017\210s\220$\320\026/\250t\2601\330\r\017\210r\220\024\320\025.\250d\260!\330\024\036\230a\230t\240<\250q\200\001\330\004\n\210+\220Q\320\004\035\230Q\330\0104\260L\300\001\300\024\300Q\330\010\013\210=\230\003\2301\330\014\022\220+\230Q\230a\340\010\037\230u\240A\330\020\030\230\001\230\021\230)\2401\330\010\021\220\035\230a\340\010\017\210q\320\004Y\320YZ\330\010\037\320\037;\2701\330\020\024\220L\320 2\260,\270a\340\010\013\210=\230\003\2303\230d\240-\250s\260!\330\014\022\220,\230a\230q\340\010\017\210q\320\004*\250!\330\010\037\230y\250\001\250\024\250\\\270\021\330\010\013\210=\230\003\2303\230d\240-\250s\260!\330\014\022\220,\230a\230q\340\010\017\210q"; + #else /* compression: none (6417 bytes) */ +const char* const bytes = ".Failed embed integrity check.Failed to convert C string to Python string.Failed to extend graph with DrawPlanar structures.Failed to extend graph with K23Search structures.Failed to extend graph with K33Search structures.Failed to extend graph with K4Search structures.Failed to extend graph with Outerplanarity structures.Failed to extend graph with Planarity structures.Failed to perform embed operation.Failed to render embedding to C string.Failed to render embedding to file 'Graph is not initialized.Invalid destination graph: wrapped graphP is NULL.Invalid graph format specifier \"Invalid link index for ulink: 'Invalid link index for vlink: 'Invalid source graph: wrapped graphP is NULL.NoneNote that Cython is deliberately stricter than PEP-484 and rejects subclasses of builtin types. If you need to pass subclasses then set the 'annotation_typing' directive to False.Source and destination graphs must have the same order to copy graphP struct.Source graph has not been initialized.''., ?add_note and vlink = disableenable' failed.gcgp_AddEdge() failed: unable to add edge (u, v) = (gp_CopyGraph() failed.gp_DeleteEdge() failed: invalid edge 'gp_DupGraph() failed.gp_DynamicAddEdge() failed: unable to add edge (u, v) = (gp_EdgeInUse() failed: invalid edge index 'gp_EnsureEdgeCapacity() failed to set edge capacity to gp_GetFirstEdge() failed: invalid vertex intex 'gp_GetNeighbor() failed: invalid edge index 'gp_GetNextEdge() failed: invalid edge index 'gp_InitGraph() failed.gp_New() failed.gp_Read() failed.gp_Write() of graph to '' is not a valid vertex label.\" is not one of 'gam'.isenabledno default __reduce__ due to non-trivial __cinit__planarity/full/graph.pyx) with ulink = AT_EDGE_CAPACITY_LIMITEMBEDFLAGS_DRAWPLANAREMBEDFLAGS_OUTERPLANAREMBEDFLAGS_PLANAREMBEDFLAGS_SEARCHFORK23EMBEDFLAGS_SEARCHFORK33EMBEDFLAGS_SEARCHFORK4FALSEFileNameGraphGraph.__reduce_cython__Graph.__setstate_cython__Graph.gp_AddEdgeGraph.gp_CopyGraphGraph.gp_DeleteEdgeGraph.gp_DrawPlan""ar_RenderToFileGraph.gp_DrawPlanar_RenderToStringGraph.gp_DupGraphGraph.gp_DynamicAddEdgeGraph.gp_EdgeInUseGraph.gp_EmbedGraph.gp_EnsureEdgeCapacityGraph.gp_ExtendWith_DrawPlanarGraph.gp_ExtendWith_K23SearchGraph.gp_ExtendWith_K33SearchGraph.gp_ExtendWith_K4SearchGraph.gp_ExtendWith_OuterplanarityGraph.gp_ExtendWith_PlanarityGraph.gp_FindEdgeGraph.gp_GetEdgeCapacityGraph.gp_GetFirstEdgeGraph.gp_GetNGraph.gp_GetNeighborGraph.gp_GetNextEdgeGraph.gp_GetVertexDegreeGraph.gp_InitGraphGraph.gp_IsEdgeGraph.gp_IsVertexGraph.gp_LowerBoundEdgeStorageGraph.gp_LowerBoundEdgesGraph.gp_LowerBoundVerticesGraph.gp_ReadGraph.gp_ReinitGraphGraph.gp_TestEmbedResultIntegrityGraph.gp_UpperBoundEdgeStorageGraph.gp_UpperBoundEdgesGraph.gp_UpperBoundVerticesGraph.gp_WriteNONEMBEDDABLENOTOKOK__Pyx_PyDict_NextRefTRUEWRITE_ADJLISTWRITE_ADJMATRIXWRITE_G6aasyncio.coroutinescheck_resultcline_in_tracebackcopy_of_orig_grapheembedFlagsembed_resultencoded__func__g__getstate__gp_AddEdgegp_CopyGraphgp_DeleteEdgegp_DrawPlanar_RenderToFilegp_DrawPlanar_RenderToStringgp_DupGraphgp_DynamicAddEdgegp_EdgeInUsegp_Embedgp_EnsureEdgeCapacitygp_ExtendWith_DrawPlanargp_ExtendWith_K23Searchgp_ExtendWith_K33Searchgp_ExtendWith_K4Searchgp_ExtendWith_Outerplanaritygp_ExtendWith_Planaritygp_FindEdgegp_GetEdgeCapacitygp_GetFirstEdgegp_GetNgp_GetNeighborgp_GetNextEdgegp_GetVertexDegreegp_InitGraphgp_IsEdgegp_IsVertexgp_LowerBoundEdgeStoragegp_LowerBoundEdgesgp_LowerBoundVerticesgp_Readgp_ReinitGraphgp_TestEmbedResultIntegritygp_UpperBoundEdgeStoragegp_UpperBoundEdgesgp_UpperBoundVerticesgp_WritegraphLibinfile_nameint_is_coroutineitemsm__main__modemode_code__module__n__name__new_edge_capacitynew_graphoutfile_nameplanarity.fullplanarity.full.graphpop__pyx_state__qualname____reduce____reduce_cython____reduce_ex__renditionStringreturnself__set_name__setdefault__setstate____setstate_cython__src_graphsrc_graph_uninit_errorstring_conversion_error__test__theFileNametheGraph_dupuulinkvvaluesvlinkgraphP (graphP)\000graphP (void)""\000int (graphP)\000\000\000\000\000\000\000\000\000\000\000\000\000\000int (graphP, char *)\000\000int (graphP, char **)\000int (graphP, char *, int)\000int (graphP, graphP)\000int (graphP, graphP, int)\000int (graphP, int)\000\000\000\000\000\000\000\000\000\000int (graphP, int, int)\000int (graphP, int, int, int, int)\000\000int (graphP, unsigned int)\000void (graphP *)\000void (graphP)\000gp_DupGraph\000gp_New\000gp_ExtendWith_DrawPlanar\000gp_ExtendWith_K23Search\000gp_ExtendWith_K33Search\000gp_ExtendWith_K4Search\000gp_ExtendWith_Outerplanarity\000gp_ExtendWith_Planarity\000gp_GetEdgeCapacity\000gp_GetN\000gp_LowerBoundEdgeStorage\000gp_LowerBoundEdges\000gp_LowerBoundVertices\000gp_UpperBoundEdgeStorage\000gp_UpperBoundEdges\000gp_UpperBoundVertices\000gp_DrawPlanar_RenderToFile\000gp_Read\000gp_DrawPlanar_RenderToString\000gp_Write\000gp_CopyGraph\000gp_TestEmbedResultIntegrity\000gp_DeleteEdge\000gp_EdgeInUse\000gp_EnsureEdgeCapacity\000gp_GetFirstEdge\000gp_GetNeighbor\000gp_GetNextEdge\000gp_GetVertexDegree\000gp_InitGraph\000gp_IsEdge\000gp_IsVertex\000gp_FindEdge\000gp_AddEdge\000gp_DynamicAddEdge\000gp_Embed\000gp_Free\000gp_ReinitGraph\320\004\030\230\001\360\010\000\t\014\2104\210{\230#\230Q\330\014\022\220,\230a\230q\340\010\027\220x\230q\240\004\240A\200A\330\010\023\320\0230\260\001\260\024\260\\\300\023\300A\330\014\022\220,\230a\230q\200A\330\010\027\320\0270\260\001\260\024\260Q\200A\330\010\023\320\023+\2501\250D\260\014\270C\270q\330\014\022\220,\230a\230q\200A\330\010\023\320\023*\250!\2504\250|\2703\270a\330\014\022\220,\230a\230q\200A\360\006\000\t\014\2104\210{\230#\230Q\330\014\022\220,\230a\330\020\021\360\006\000\t\n\330\014\017\210y\230\010\240\003\2403\240a\330\020\026\220j\240\001\240\021\330\010\017\320\017\037\230q\330\014\022\220*\230A\330\020\021\330\023\024\340\010\013\2104\210x\220s\230#\230Y\240h\250a\330\014\022\220*\230A\330\020\021\360\006\000\t\024\220=\240\001\240\024\240\\\260\031\270,\300c\310\021\330\014\022\220,""\230a\230q\200A\330\010\027\320\027*\250!\2504\250q\200A\330\010\013\2104\210t\220:\230Q\230a\330\014\022\220,\230a\330\0208\270\001\270\021\360\006\000\t\030\220~\240Q\240d\250,\260a\200A\330\010\013\2104\210t\220:\230Q\230a\330\014\022\220,\230a\330\020=\270Q\270a\360\006\000\t\030\220}\240A\240T\250\034\260Q\200A\330\010\013\2104\210t\220:\230Q\230a\330\014\022\220,\230a\330\020?\270q\300\001\360\006\000\t\030\220\177\240a\240t\250<\260q\200A\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\330\020B\300!\3001\360\006\000\t\030\320\027'\240q\250\004\250L\270\001\200A\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\230s\240!\2401\340\010\027\320\027*\250!\2504\250|\2701\200A\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\230s\240!\2401\330\010\013\2104\210t\220<\230q\240\001\330\014\022\220,\230a\230s\240!\2401\340\010\027\220|\2401\240D\250\014\260C\260q\200A\330\010\013\2106\220\023\220B\220d\230&\240\003\2401\330\014\022\220,\230a\330\0201\260\021\260!\340\010\013\2106\220\023\220B\220d\230&\240\003\2401\330\014\022\220,\230a\330\0201\260\021\260!\340\010\023\320\023%\240Q\240d\250,\260c\270\027\300\003\3007\310#\310Q\330\014\022\220,\230a\330\020\021\330\020\023\2201\220D\230\001\320\031*\250!\320+>\270a\270q\200A\330\010\013\2106\220\023\220B\220d\230&\240\003\2401\330\014\022\220,\230a\330\0201\260\021\260!\340\010\013\2106\220\023\220B\220d\230&\240\003\2401\330\014\022\220,\230a\330\0201\260\021\260!\340\010\023\220;\230a\230t\240<\250s\260'\270\023\270G\3003\300a\330\014\022\220,\230a\330\020D\300A\300T\310\021\310!\330\020\037\230q\320 3\2601\260A\200A\330\010\023\320\023,\250A\250T\260\034\270S\300\001\330\014\022\220,\230a\230q\200A\330\010\023\220=\240\001\240\024\240\\\260\023\260C\260q\330\014\022\220,\230a\230q\200A\330\010%\240Q\330\010\023\320\0230\260\001\260\024\260\\\300\021\320BS\320SV\320VW\330\014\022\220,\230a\230q\340\010\t\330\014\023\220?\240'\250\021\250!\330\010\017\210}\230A\330\014\022\220,""\230a\330\020\021\330\027\030\340\014\020\220\001\220\021\200A\330\010\027\320\027-\250Q\250d\260!\200A\330\010\025\220X\320\035/\250u\260C\260q\330\037'\320';\2705\300\003\3001\330%-\250]\270%\270s\300!\330*+\330\010\013\2104\210q\330\014\022\220*\230A\330\0203\2601\260A\360\n\000\t\036\230\\\250\027\260\001\260\021\330\010'\240q\340\010\023\2209\230A\230T\240\034\250]\270+\300S\310\001\330\014\022\220,\230a\330\020*\250!\2501\200A\330\010\023\320\023)\250\021\250$\250l\320:M\310S\320PQ\330\014\022\220,\230a\330\020\021\330\020\022\220!\2201\200A\330\020\037\230q\240\004\240A\200A\340\010\035\230[\250\007\250q\260\001\330\010$\240A\340\010\023\2208\2301\230D\240\014\250J\260c\270\021\330\014\022\220,\230a\230q\200A\340\010\035\230\\\250\027\260\001\260\021\330\010'\240q\340\010\023\320\023.\250a\250t\260<\270}\310C\310q\330\014\022\220,\230a\320\037E\300Q\300a\200A\330\010\t\330\r\017\210s\220$\320\026,\250D\260\001\330\r\017\210r\220\024\320\025+\2504\250q\330\024 \240\001\240\024\240\\\260\021\200A\330\010\t\330\r\017\210s\220$\320\026/\250t\2601\330\r\017\210r\220\024\320\025.\250d\260!\330\024\036\230a\230t\240<\250q\200\001\330\004\n\210+\220Q\320\004\035\230Q\330\0104\260L\300\001\300\024\300Q\330\010\013\210=\230\003\2301\330\014\022\220+\230Q\230a\340\010\037\230u\240A\330\020\030\230\001\230\021\230)\2401\330\010\021\220\035\230a\340\010\017\210q\320\004Y\320YZ\330\010\037\320\037;\2701\330\020\024\220L\320 2\260,\270a\340\010\013\210=\230\003\2303\230d\240-\250s\260!\330\014\022\220,\230a\230q\340\010\017\210q\320\004*\250!\330\010\037\230y\250\001\250\024\250\\\270\021\330\010\013\210=\230\003\2303\230d\240-\250s\260!\330\014\022\220,\230a\230q\340\010\017\210q"; PyObject *data = NULL; CYTHON_UNUSED_VAR(__Pyx_DecompressString); #endif PyObject **stringtab = __pyx_mstate->__pyx_string_tab; Py_ssize_t pos = 0; - for (int i = 0; i < 195; i++) { + for (int i = 0; i < 198; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); - if (likely(string) && i >= 52) PyUnicode_InternInPlace(&string); + if (likely(string) && i >= 53) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) @@ -11598,7 +12004,7 @@ const char* const bytes = ".Failed embed integrity check.Failed to convert C str stringtab[i] = string; pos += bytes_length; } - for (int i = 195; i < 225; i++) { + for (int i = 198; i < 229; i++) { Py_ssize_t bytes_length = index[i].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; @@ -11609,15 +12015,15 @@ const char* const bytes = ".Failed embed integrity check.Failed to convert C str } } Py_XDECREF(data); - for (Py_ssize_t i = 0; i < 225; i++) { + for (Py_ssize_t i = 0; i < 229; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 195; - for (Py_ssize_t i=0; i<30; ++i) { + PyObject **table = stringtab + 198; + for (Py_ssize_t i=0; i<31; ++i) { #if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING #if PY_VERSION_HEX < 0x030E0000 if (_Py_IsOwnedByCurrentThread(table[i]) && Py_REFCNT(table[i]) == 1) @@ -11739,139 +12145,144 @@ static int __Pyx_CreateCodeObjects(__pyx_mstatetype *__pyx_mstate) { __pyx_mstate_global->__pyx_codeobj_tab[9] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_AddEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_6_Bd_1_a_1_6_Bd_1_a_1_at_s_G3a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[9])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 133}; + const __Pyx_PyCode_New_function_description descr = {5, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 133}; + PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_u, __pyx_mstate->__pyx_n_u_ulink, __pyx_mstate->__pyx_n_u_v, __pyx_mstate->__pyx_n_u_vlink}; + __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_DynamicAddEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_6_Bd_1_a_1_6_Bd_1_a_1_Qd_c_7_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad; + } + { + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 148}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_e}; - __pyx_mstate_global->__pyx_codeobj_tab[10] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_DeleteEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_8_Qd_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[10])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_DeleteEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_8_Qd_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 141}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 156}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[11] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_LowerBoundEdgeStorage, __pyx_mstate->__pyx_kp_b_iso88591_A_0_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[11])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_LowerBoundEdges, __pyx_mstate->__pyx_kp_b_iso88591_A_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 144}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 159}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[12] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_UpperBoundEdgeStorage, __pyx_mstate->__pyx_kp_b_iso88591_A_0_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[12])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_UpperBoundEdges, __pyx_mstate->__pyx_kp_b_iso88591_A_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 147}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 162}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_e}; - __pyx_mstate_global->__pyx_codeobj_tab[13] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_IsEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_s_t1_r_d_at_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[13])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_IsEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_s_t1_r_d_at_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 154}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 169}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_e}; - __pyx_mstate_global->__pyx_codeobj_tab[14] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_EdgeInUse, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_Qa_AT_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[14])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_EdgeInUse, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_Qa_AT_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 162}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 177}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[15] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_LowerBoundEdges, __pyx_mstate->__pyx_kp_b_iso88591_A_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[15])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_LowerBoundEdgeStorage, __pyx_mstate->__pyx_kp_b_iso88591_A_0_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 165}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 180}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[16] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_UpperBoundEdges, __pyx_mstate->__pyx_kp_b_iso88591_A_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[16])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_UpperBoundEdgeStorage, __pyx_mstate->__pyx_kp_b_iso88591_A_0_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 168}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 183}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_e}; - __pyx_mstate_global->__pyx_codeobj_tab[17] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_GetNextEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_q_at_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[17])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_GetNextEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_q_at_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 176}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 191}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_e}; - __pyx_mstate_global->__pyx_codeobj_tab[18] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_GetNeighbor, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_q_at_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[18])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_GetNeighbor, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_Qa_a_q_at_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 184}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 199}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_v}; - __pyx_mstate_global->__pyx_codeobj_tab[19] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_GetFirstEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_q_a_B_1_q_L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[19])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_GetFirstEdge, __pyx_mstate->__pyx_kp_b_iso88591_A_4t_q_a_B_1_q_L, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 192}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 207}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[20] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_LowerBoundVertices, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[20])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_LowerBoundVertices, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 195}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 210}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[21] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_UpperBoundVertices, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[21])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_UpperBoundVertices, __pyx_mstate->__pyx_kp_b_iso88591_A_Qd, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 198}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 213}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_v}; - __pyx_mstate_global->__pyx_codeobj_tab[22] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_IsVertex, __pyx_mstate->__pyx_kp_b_iso88591_A_s_D_r_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[22])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_IsVertex, __pyx_mstate->__pyx_kp_b_iso88591_A_s_D_r_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 205}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 220}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_infile_name, __pyx_mstate->__pyx_n_u_encoded, __pyx_mstate->__pyx_n_u_FileName}; - __pyx_mstate_global->__pyx_codeobj_tab[23] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_Read, __pyx_mstate->__pyx_kp_b_iso88591_A_q_A_81D_Jc_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[23])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_Read, __pyx_mstate->__pyx_kp_b_iso88591_A_q_A_81D_Jc_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 213}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 228}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_outfile_name, __pyx_mstate->__pyx_n_u_mode, __pyx_mstate->__pyx_n_u_mode_code, __pyx_mstate->__pyx_n_u_encoded, __pyx_mstate->__pyx_n_u_theFileName}; - __pyx_mstate_global->__pyx_codeobj_tab[24] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_Write, __pyx_mstate->__pyx_kp_b_iso88591_A_X_uCq_5_1_s_4q_A_31A_q_9AT_S_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[24])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_Write, __pyx_mstate->__pyx_kp_b_iso88591_A_X_uCq_5_1_s_4q_A_31A_q_9AT_S_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 233}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 248}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[25] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_Planarity, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Cq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[25])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_Planarity, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Cq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 237}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 252}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_embedFlags, __pyx_mstate->__pyx_n_u_embed_result}; - __pyx_mstate_global->__pyx_codeobj_tab[26] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_Embed, __pyx_mstate->__pyx_kp_b_iso88591_y_3d_s_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[26])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_Embed, __pyx_mstate->__pyx_kp_b_iso88591_y_3d_s_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 244}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 259}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_copy_of_orig_graph, __pyx_mstate->__pyx_n_u_embed_result, __pyx_mstate->__pyx_n_u_check_result}; - __pyx_mstate_global->__pyx_codeobj_tab[27] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_TestEmbedResultIntegrity, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_1_L_2_a_3d_s_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[27])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_TestEmbedResultIntegrity, __pyx_mstate->__pyx_kp_b_iso88591_YYZ_1_L_2_a_3d_s_aq_q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 253}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 268}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[28] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_Outerplanarity, __pyx_mstate->__pyx_kp_b_iso88591_A_0_A_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[28])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_Outerplanarity, __pyx_mstate->__pyx_kp_b_iso88591_A_0_A_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 257}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 272}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[29] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_DrawPlanar, __pyx_mstate->__pyx_kp_b_iso88591_A_AT_S_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[29])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_DrawPlanar, __pyx_mstate->__pyx_kp_b_iso88591_A_AT_S_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 261}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 276}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_outfile_name, __pyx_mstate->__pyx_n_u_encoded, __pyx_mstate->__pyx_n_u_theFileName}; - __pyx_mstate_global->__pyx_codeobj_tab[30] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_DrawPlanar_RenderToFile, __pyx_mstate->__pyx_kp_b_iso88591_A_q_at_Cq_a_EQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[30])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_DrawPlanar_RenderToFile, __pyx_mstate->__pyx_kp_b_iso88591_A_q_at_Cq_a_EQa, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 269}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 3, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 284}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_renditionString, __pyx_mstate->__pyx_n_u_string_conversion_error}; - __pyx_mstate_global->__pyx_codeobj_tab[31] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_DrawPlanar_RenderToString, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_0_BSSVVW_aq_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[31])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_DrawPlanar_RenderToString, __pyx_mstate->__pyx_kp_b_iso88591_A_Q_0_BSSVVW_aq_A_a, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 283}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 298}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[32] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_K23Search, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Cq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[32])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_K23Search, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Cq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 287}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 302}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[33] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_K33Search, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Cq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[33])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_K33Search, __pyx_mstate->__pyx_kp_b_iso88591_A_1D_Cq_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; } { - const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 291}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 306}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[34] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_K4Search, __pyx_mstate->__pyx_kp_b_iso88591_A_4_3a_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[34])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_planarity_full_graph_pyx, __pyx_mstate->__pyx_n_u_gp_ExtendWith_K4Search, __pyx_mstate->__pyx_kp_b_iso88591_A_4_3a_aq, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 1}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self}; - __pyx_mstate_global->__pyx_codeobj_tab[35] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[35])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_reduce_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; } { const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 3}; PyObject* const varnames[] = {__pyx_mstate->__pyx_n_u_self, __pyx_mstate->__pyx_n_u_pyx_state}; - __pyx_mstate_global->__pyx_codeobj_tab[36] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[36])) goto bad; + __pyx_mstate_global->__pyx_codeobj_tab[37] = __Pyx_PyCode_New(descr, varnames, __pyx_mstate->__pyx_kp_u_stringsource, __pyx_mstate->__pyx_n_u_setstate_cython, __pyx_mstate->__pyx_kp_b_iso88591_Q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[37])) goto bad; } Py_DECREF(tuple_dedup_map); return 0; diff --git a/planarity/full/graph.pyx b/planarity/full/graph.pyx index 1954bff..10669e9 100644 --- a/planarity/full/graph.pyx +++ b/planarity/full/graph.pyx @@ -126,8 +126,23 @@ cdef class Graph: ) if graphLib.gp_AddEdge(self._theGraph, u, ulink, v, vlink) != OK: raise RuntimeError( - f"Unable to add edge (u, v) = ({u}, {v}) with ulink = {ulink} " - f"and vlink = {vlink}." + f"gp_AddEdge() failed: unable to add edge (u, v) = ({u}, {v}) " + f"with ulink = {ulink} and vlink = {vlink}." + ) + + def gp_DynamicAddEdge(self, int u, int ulink, int v, int vlink): + if ulink != 0 and ulink != 1: + raise RuntimeError( + f"Invalid link index for ulink: '{ulink}'." + ) + if vlink != 0 and vlink != 1: + raise RuntimeError( + f"Invalid link index for vlink: '{vlink}'." + ) + if graphLib.gp_DynamicAddEdge(self._theGraph, u, ulink, v, vlink) != OK: + raise RuntimeError( + f"gp_DynamicAddEdge() failed: unable to add edge (u, v) = " + f"({u}, {v}) with ulink = {ulink} and vlink = {vlink}." ) def gp_DeleteEdge(self, int e): @@ -138,11 +153,11 @@ cdef class Graph: return graphLib.gp_DeleteEdge(self._theGraph, e) - def gp_LowerBoundEdgeStorage(self): - return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) + def gp_LowerBoundEdges(self): + return graphLib.gp_LowerBoundEdges(self._theGraph) - def gp_UpperBoundEdgeStorage(self): - return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) + def gp_UpperBoundEdges(self): + return graphLib.gp_UpperBoundEdges(self._theGraph) def gp_IsEdge(self, int e): return ( @@ -159,11 +174,11 @@ cdef class Graph: return graphLib.gp_EdgeInUse(self._theGraph, e) - def gp_LowerBoundEdges(self): - return graphLib.gp_LowerBoundEdges(self._theGraph) + def gp_LowerBoundEdgeStorage(self): + return graphLib.gp_LowerBoundEdgeStorage(self._theGraph) - def gp_UpperBoundEdges(self): - return graphLib.gp_UpperBoundEdges(self._theGraph) + def gp_UpperBoundEdgeStorage(self): + return graphLib.gp_UpperBoundEdgeStorage(self._theGraph) def gp_GetNextEdge(self, int e): if not self.gp_IsEdge(e): diff --git a/planarity/full/graphLib.c b/planarity/full/graphLib.c index ab45c5b..46cc1bc 100644 --- a/planarity/full/graphLib.c +++ b/planarity/full/graphLib.c @@ -3249,29 +3249,29 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_AddEdge(graphP __pyx_v_theGraph /* "planarity/full/graphLib.pyx":108 * * - * cdef int gp_DeleteEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< - * return cgraphLib.gp_DeleteEdge(theGraph, e) + * cdef int gp_DynamicAddEdge(graphP theGraph, int u, int ulink, int v, int vlink): # <<<<<<<<<<<<<< + * return cgraphLib.gp_DynamicAddEdge(theGraph, u, ulink, v, vlink) * */ -static int __pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge(graphP __pyx_v_theGraph, int __pyx_v_e) { +static int __pyx_f_9planarity_4full_8graphLib_gp_DynamicAddEdge(graphP __pyx_v_theGraph, int __pyx_v_u, int __pyx_v_ulink, int __pyx_v_v, int __pyx_v_vlink) { int __pyx_r; /* "planarity/full/graphLib.pyx":109 * - * cdef int gp_DeleteEdge(graphP theGraph, int e): - * return cgraphLib.gp_DeleteEdge(theGraph, e) # <<<<<<<<<<<<<< + * cdef int gp_DynamicAddEdge(graphP theGraph, int u, int ulink, int v, int vlink): + * return cgraphLib.gp_DynamicAddEdge(theGraph, u, ulink, v, vlink) # <<<<<<<<<<<<<< * * */ - __pyx_r = gp_DeleteEdge(__pyx_v_theGraph, __pyx_v_e); + __pyx_r = gp_DynamicAddEdge(__pyx_v_theGraph, __pyx_v_u, __pyx_v_ulink, __pyx_v_v, __pyx_v_vlink); goto __pyx_L0; /* "planarity/full/graphLib.pyx":108 * * - * cdef int gp_DeleteEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< - * return cgraphLib.gp_DeleteEdge(theGraph, e) + * cdef int gp_DynamicAddEdge(graphP theGraph, int u, int ulink, int v, int vlink): # <<<<<<<<<<<<<< + * return cgraphLib.gp_DynamicAddEdge(theGraph, u, ulink, v, vlink) * */ @@ -3283,29 +3283,29 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge(graphP __pyx_v_theGr /* "planarity/full/graphLib.pyx":112 * * - * cdef int gp_LowerBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) + * cdef int gp_DeleteEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< + * return cgraphLib.gp_DeleteEdge(theGraph, e) * */ -static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage(graphP __pyx_v_theGraph) { +static int __pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge(graphP __pyx_v_theGraph, int __pyx_v_e) { int __pyx_r; /* "planarity/full/graphLib.pyx":113 * - * cdef int gp_LowerBoundEdgeStorage(graphP theGraph): - * return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) # <<<<<<<<<<<<<< + * cdef int gp_DeleteEdge(graphP theGraph, int e): + * return cgraphLib.gp_DeleteEdge(theGraph, e) # <<<<<<<<<<<<<< * * */ - __pyx_r = gp_LowerBoundEdgeStorage(__pyx_v_theGraph); + __pyx_r = gp_DeleteEdge(__pyx_v_theGraph, __pyx_v_e); goto __pyx_L0; /* "planarity/full/graphLib.pyx":112 * * - * cdef int gp_LowerBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) + * cdef int gp_DeleteEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< + * return cgraphLib.gp_DeleteEdge(theGraph, e) * */ @@ -3317,29 +3317,29 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage(graphP __ /* "planarity/full/graphLib.pyx":116 * * - * cdef int gp_UpperBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) + * cdef int gp_LowerBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_LowerBoundEdges(theGraph) * */ -static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage(graphP __pyx_v_theGraph) { +static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges(graphP __pyx_v_theGraph) { int __pyx_r; /* "planarity/full/graphLib.pyx":117 * - * cdef int gp_UpperBoundEdgeStorage(graphP theGraph): - * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) # <<<<<<<<<<<<<< + * cdef int gp_LowerBoundEdges(graphP theGraph): + * return cgraphLib.gp_LowerBoundEdges(theGraph) # <<<<<<<<<<<<<< + * * - * cdef int gp_IsEdge(graphP theGraph, int e): */ - __pyx_r = gp_UpperBoundEdgeStorage(__pyx_v_theGraph); + __pyx_r = gp_LowerBoundEdges(__pyx_v_theGraph); goto __pyx_L0; /* "planarity/full/graphLib.pyx":116 * * - * cdef int gp_UpperBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) + * cdef int gp_LowerBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_LowerBoundEdges(theGraph) * */ @@ -3348,8 +3348,42 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage(graphP __ return __pyx_r; } -/* "planarity/full/graphLib.pyx":119 - * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) +/* "planarity/full/graphLib.pyx":120 + * + * + * cdef int gp_UpperBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_UpperBoundEdges(theGraph) + * +*/ + +static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges(graphP __pyx_v_theGraph) { + int __pyx_r; + + /* "planarity/full/graphLib.pyx":121 + * + * cdef int gp_UpperBoundEdges(graphP theGraph): + * return cgraphLib.gp_UpperBoundEdges(theGraph) # <<<<<<<<<<<<<< + * + * +*/ + __pyx_r = gp_UpperBoundEdges(__pyx_v_theGraph); + goto __pyx_L0; + + /* "planarity/full/graphLib.pyx":120 + * + * + * cdef int gp_UpperBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_UpperBoundEdges(theGraph) + * +*/ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "planarity/full/graphLib.pyx":124 + * * * cdef int gp_IsEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< * return cgraphLib.gp_IsEdge(theGraph, e) @@ -3359,7 +3393,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage(graphP __ static int __pyx_f_9planarity_4full_8graphLib_gp_IsEdge(graphP __pyx_v_theGraph, int __pyx_v_e) { int __pyx_r; - /* "planarity/full/graphLib.pyx":120 + /* "planarity/full/graphLib.pyx":125 * * cdef int gp_IsEdge(graphP theGraph, int e): * return cgraphLib.gp_IsEdge(theGraph, e) # <<<<<<<<<<<<<< @@ -3369,8 +3403,8 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_IsEdge(graphP __pyx_v_theGraph, __pyx_r = gp_IsEdge(__pyx_v_theGraph, __pyx_v_e); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":119 - * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) + /* "planarity/full/graphLib.pyx":124 + * * * cdef int gp_IsEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< * return cgraphLib.gp_IsEdge(theGraph, e) @@ -3382,7 +3416,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_IsEdge(graphP __pyx_v_theGraph, return __pyx_r; } -/* "planarity/full/graphLib.pyx":123 +/* "planarity/full/graphLib.pyx":128 * * * cdef int gp_EdgeInUse(graphP theGraph, int e): # <<<<<<<<<<<<<< @@ -3393,7 +3427,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_IsEdge(graphP __pyx_v_theGraph, static int __pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse(graphP __pyx_v_theGraph, int __pyx_v_e) { int __pyx_r; - /* "planarity/full/graphLib.pyx":124 + /* "planarity/full/graphLib.pyx":129 * * cdef int gp_EdgeInUse(graphP theGraph, int e): * return cgraphLib.gp_EdgeInUse(theGraph, e) # <<<<<<<<<<<<<< @@ -3403,7 +3437,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse(graphP __pyx_v_theGra __pyx_r = gp_EdgeInUse(__pyx_v_theGraph, __pyx_v_e); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":123 + /* "planarity/full/graphLib.pyx":128 * * * cdef int gp_EdgeInUse(graphP theGraph, int e): # <<<<<<<<<<<<<< @@ -3416,32 +3450,32 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse(graphP __pyx_v_theGra return __pyx_r; } -/* "planarity/full/graphLib.pyx":127 +/* "planarity/full/graphLib.pyx":132 * * - * cdef int gp_LowerBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_LowerBoundEdges(theGraph) + * cdef int gp_LowerBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) * */ -static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges(graphP __pyx_v_theGraph) { +static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":128 + /* "planarity/full/graphLib.pyx":133 * - * cdef int gp_LowerBoundEdges(graphP theGraph): - * return cgraphLib.gp_LowerBoundEdges(theGraph) # <<<<<<<<<<<<<< + * cdef int gp_LowerBoundEdgeStorage(graphP theGraph): + * return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) # <<<<<<<<<<<<<< * * */ - __pyx_r = gp_LowerBoundEdges(__pyx_v_theGraph); + __pyx_r = gp_LowerBoundEdgeStorage(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":127 + /* "planarity/full/graphLib.pyx":132 * * - * cdef int gp_LowerBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_LowerBoundEdges(theGraph) + * cdef int gp_LowerBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) * */ @@ -3450,32 +3484,32 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges(graphP __pyx_v_ return __pyx_r; } -/* "planarity/full/graphLib.pyx":131 +/* "planarity/full/graphLib.pyx":136 * * - * cdef int gp_UpperBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_UpperBoundEdges(theGraph) + * cdef int gp_UpperBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) * */ -static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges(graphP __pyx_v_theGraph) { +static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":132 + /* "planarity/full/graphLib.pyx":137 * - * cdef int gp_UpperBoundEdges(graphP theGraph): - * return cgraphLib.gp_UpperBoundEdges(theGraph) # <<<<<<<<<<<<<< + * cdef int gp_UpperBoundEdgeStorage(graphP theGraph): + * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) # <<<<<<<<<<<<<< * * */ - __pyx_r = gp_UpperBoundEdges(__pyx_v_theGraph); + __pyx_r = gp_UpperBoundEdgeStorage(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":131 + /* "planarity/full/graphLib.pyx":136 * * - * cdef int gp_UpperBoundEdges(graphP theGraph): # <<<<<<<<<<<<<< - * return cgraphLib.gp_UpperBoundEdges(theGraph) + * cdef int gp_UpperBoundEdgeStorage(graphP theGraph): # <<<<<<<<<<<<<< + * return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) * */ @@ -3484,7 +3518,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges(graphP __pyx_v_ return __pyx_r; } -/* "planarity/full/graphLib.pyx":135 +/* "planarity/full/graphLib.pyx":140 * * * cdef int gp_GetNextEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< @@ -3495,7 +3529,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges(graphP __pyx_v_ static int __pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge(graphP __pyx_v_theGraph, int __pyx_v_e) { int __pyx_r; - /* "planarity/full/graphLib.pyx":136 + /* "planarity/full/graphLib.pyx":141 * * cdef int gp_GetNextEdge(graphP theGraph, int e): * return cgraphLib.gp_GetNextEdge(theGraph, e) # <<<<<<<<<<<<<< @@ -3505,7 +3539,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge(graphP __pyx_v_theG __pyx_r = gp_GetNextEdge(__pyx_v_theGraph, __pyx_v_e); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":135 + /* "planarity/full/graphLib.pyx":140 * * * cdef int gp_GetNextEdge(graphP theGraph, int e): # <<<<<<<<<<<<<< @@ -3518,7 +3552,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge(graphP __pyx_v_theG return __pyx_r; } -/* "planarity/full/graphLib.pyx":139 +/* "planarity/full/graphLib.pyx":144 * * * cdef int gp_GetNeighbor(graphP theGraph, int e): # <<<<<<<<<<<<<< @@ -3529,7 +3563,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge(graphP __pyx_v_theG static int __pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor(graphP __pyx_v_theGraph, int __pyx_v_e) { int __pyx_r; - /* "planarity/full/graphLib.pyx":140 + /* "planarity/full/graphLib.pyx":145 * * cdef int gp_GetNeighbor(graphP theGraph, int e): * return cgraphLib.gp_GetNeighbor(theGraph, e) # <<<<<<<<<<<<<< @@ -3539,7 +3573,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor(graphP __pyx_v_theG __pyx_r = gp_GetNeighbor(__pyx_v_theGraph, __pyx_v_e); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":139 + /* "planarity/full/graphLib.pyx":144 * * * cdef int gp_GetNeighbor(graphP theGraph, int e): # <<<<<<<<<<<<<< @@ -3552,7 +3586,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor(graphP __pyx_v_theG return __pyx_r; } -/* "planarity/full/graphLib.pyx":143 +/* "planarity/full/graphLib.pyx":148 * * * cdef int gp_GetFirstEdge(graphP theGraph, int v): # <<<<<<<<<<<<<< @@ -3563,7 +3597,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor(graphP __pyx_v_theG static int __pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge(graphP __pyx_v_theGraph, int __pyx_v_v) { int __pyx_r; - /* "planarity/full/graphLib.pyx":144 + /* "planarity/full/graphLib.pyx":149 * * cdef int gp_GetFirstEdge(graphP theGraph, int v): * return cgraphLib.gp_GetFirstEdge(theGraph, v) # <<<<<<<<<<<<<< @@ -3573,7 +3607,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge(graphP __pyx_v_the __pyx_r = gp_GetFirstEdge(__pyx_v_theGraph, __pyx_v_v); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":143 + /* "planarity/full/graphLib.pyx":148 * * * cdef int gp_GetFirstEdge(graphP theGraph, int v): # <<<<<<<<<<<<<< @@ -3586,7 +3620,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge(graphP __pyx_v_the return __pyx_r; } -/* "planarity/full/graphLib.pyx":147 +/* "planarity/full/graphLib.pyx":152 * * * cdef int gp_LowerBoundVertices(graphP theGraph): # <<<<<<<<<<<<<< @@ -3597,7 +3631,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge(graphP __pyx_v_the static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":148 + /* "planarity/full/graphLib.pyx":153 * * cdef int gp_LowerBoundVertices(graphP theGraph): * return cgraphLib.gp_LowerBoundVertices(theGraph) # <<<<<<<<<<<<<< @@ -3607,7 +3641,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices(graphP __pyx __pyx_r = gp_LowerBoundVertices(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":147 + /* "planarity/full/graphLib.pyx":152 * * * cdef int gp_LowerBoundVertices(graphP theGraph): # <<<<<<<<<<<<<< @@ -3620,7 +3654,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices(graphP __pyx return __pyx_r; } -/* "planarity/full/graphLib.pyx":151 +/* "planarity/full/graphLib.pyx":156 * * * cdef int gp_UpperBoundVertices(graphP theGraph): # <<<<<<<<<<<<<< @@ -3631,7 +3665,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices(graphP __pyx static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":152 + /* "planarity/full/graphLib.pyx":157 * * cdef int gp_UpperBoundVertices(graphP theGraph): * return cgraphLib.gp_UpperBoundVertices(theGraph) # <<<<<<<<<<<<<< @@ -3641,7 +3675,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices(graphP __pyx __pyx_r = gp_UpperBoundVertices(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":151 + /* "planarity/full/graphLib.pyx":156 * * * cdef int gp_UpperBoundVertices(graphP theGraph): # <<<<<<<<<<<<<< @@ -3654,7 +3688,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices(graphP __pyx return __pyx_r; } -/* "planarity/full/graphLib.pyx":155 +/* "planarity/full/graphLib.pyx":160 * * * cdef int gp_IsVertex(graphP theGraph, int v): # <<<<<<<<<<<<<< @@ -3665,7 +3699,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices(graphP __pyx static int __pyx_f_9planarity_4full_8graphLib_gp_IsVertex(graphP __pyx_v_theGraph, int __pyx_v_v) { int __pyx_r; - /* "planarity/full/graphLib.pyx":156 + /* "planarity/full/graphLib.pyx":161 * * cdef int gp_IsVertex(graphP theGraph, int v): * return cgraphLib.gp_IsVertex(theGraph, v) # <<<<<<<<<<<<<< @@ -3675,7 +3709,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_IsVertex(graphP __pyx_v_theGrap __pyx_r = gp_IsVertex(__pyx_v_theGraph, __pyx_v_v); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":155 + /* "planarity/full/graphLib.pyx":160 * * * cdef int gp_IsVertex(graphP theGraph, int v): # <<<<<<<<<<<<<< @@ -3688,7 +3722,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_IsVertex(graphP __pyx_v_theGrap return __pyx_r; } -/* "planarity/full/graphLib.pyx":160 +/* "planarity/full/graphLib.pyx":165 * * # Wraps functions declared in "../c/graphLib/io/graphIO.h": * cdef int gp_Read(graphP theGraph, char *FileName): # <<<<<<<<<<<<<< @@ -3699,7 +3733,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_IsVertex(graphP __pyx_v_theGrap static int __pyx_f_9planarity_4full_8graphLib_gp_Read(graphP __pyx_v_theGraph, char *__pyx_v_FileName) { int __pyx_r; - /* "planarity/full/graphLib.pyx":161 + /* "planarity/full/graphLib.pyx":166 * # Wraps functions declared in "../c/graphLib/io/graphIO.h": * cdef int gp_Read(graphP theGraph, char *FileName): * return cgraphLib.gp_Read(theGraph, FileName) # <<<<<<<<<<<<<< @@ -3709,7 +3743,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Read(graphP __pyx_v_theGraph, c __pyx_r = gp_Read(__pyx_v_theGraph, __pyx_v_FileName); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":160 + /* "planarity/full/graphLib.pyx":165 * * # Wraps functions declared in "../c/graphLib/io/graphIO.h": * cdef int gp_Read(graphP theGraph, char *FileName): # <<<<<<<<<<<<<< @@ -3722,7 +3756,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Read(graphP __pyx_v_theGraph, c return __pyx_r; } -/* "planarity/full/graphLib.pyx":164 +/* "planarity/full/graphLib.pyx":169 * * * cdef int gp_Write(graphP theGraph, char *FileName, int Mode): # <<<<<<<<<<<<<< @@ -3733,7 +3767,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Read(graphP __pyx_v_theGraph, c static int __pyx_f_9planarity_4full_8graphLib_gp_Write(graphP __pyx_v_theGraph, char *__pyx_v_FileName, int __pyx_v_Mode) { int __pyx_r; - /* "planarity/full/graphLib.pyx":165 + /* "planarity/full/graphLib.pyx":170 * * cdef int gp_Write(graphP theGraph, char *FileName, int Mode): * return cgraphLib.gp_Write(theGraph, FileName, Mode) # <<<<<<<<<<<<<< @@ -3743,7 +3777,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Write(graphP __pyx_v_theGraph, __pyx_r = gp_Write(__pyx_v_theGraph, __pyx_v_FileName, __pyx_v_Mode); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":164 + /* "planarity/full/graphLib.pyx":169 * * * cdef int gp_Write(graphP theGraph, char *FileName, int Mode): # <<<<<<<<<<<<<< @@ -3756,7 +3790,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Write(graphP __pyx_v_theGraph, return __pyx_r; } -/* "planarity/full/graphLib.pyx":169 +/* "planarity/full/graphLib.pyx":174 * * # Wraps functions declared in "../c/graphLib/io/g6-read-iterator.h": * cdef int g6_NewReader(G6ReadIteratorP *pG6ReadIterator, graphP theGraph): # <<<<<<<<<<<<<< @@ -3767,7 +3801,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Write(graphP __pyx_v_theGraph, static int __pyx_f_9planarity_4full_8graphLib_g6_NewReader(G6ReadIteratorP *__pyx_v_pG6ReadIterator, graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":170 + /* "planarity/full/graphLib.pyx":175 * # Wraps functions declared in "../c/graphLib/io/g6-read-iterator.h": * cdef int g6_NewReader(G6ReadIteratorP *pG6ReadIterator, graphP theGraph): * return cgraphLib.g6_NewReader(pG6ReadIterator, theGraph) # <<<<<<<<<<<<<< @@ -3777,7 +3811,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_NewReader(G6ReadIteratorP *__py __pyx_r = g6_NewReader(__pyx_v_pG6ReadIterator, __pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":169 + /* "planarity/full/graphLib.pyx":174 * * # Wraps functions declared in "../c/graphLib/io/g6-read-iterator.h": * cdef int g6_NewReader(G6ReadIteratorP *pG6ReadIterator, graphP theGraph): # <<<<<<<<<<<<<< @@ -3790,7 +3824,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_NewReader(G6ReadIteratorP *__py return __pyx_r; } -/* "planarity/full/graphLib.pyx":173 +/* "planarity/full/graphLib.pyx":178 * * * cdef int g6_InitReaderWithFileName(G6ReadIteratorP theG6ReadIterator, char *infileName): # <<<<<<<<<<<<<< @@ -3801,7 +3835,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_NewReader(G6ReadIteratorP *__py static int __pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName(G6ReadIteratorP __pyx_v_theG6ReadIterator, char *__pyx_v_infileName) { int __pyx_r; - /* "planarity/full/graphLib.pyx":174 + /* "planarity/full/graphLib.pyx":179 * * cdef int g6_InitReaderWithFileName(G6ReadIteratorP theG6ReadIterator, char *infileName): * return cgraphLib.g6_InitReaderWithFileName(theG6ReadIterator, infileName) # <<<<<<<<<<<<<< @@ -3811,7 +3845,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName(G6ReadIt __pyx_r = g6_InitReaderWithFileName(__pyx_v_theG6ReadIterator, __pyx_v_infileName); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":173 + /* "planarity/full/graphLib.pyx":178 * * * cdef int g6_InitReaderWithFileName(G6ReadIteratorP theG6ReadIterator, char *infileName): # <<<<<<<<<<<<<< @@ -3824,7 +3858,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName(G6ReadIt return __pyx_r; } -/* "planarity/full/graphLib.pyx":177 +/* "planarity/full/graphLib.pyx":182 * * * cdef int g6_ReadGraph(G6ReadIteratorP theG6ReadIterator): # <<<<<<<<<<<<<< @@ -3835,7 +3869,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName(G6ReadIt static int __pyx_f_9planarity_4full_8graphLib_g6_ReadGraph(G6ReadIteratorP __pyx_v_theG6ReadIterator) { int __pyx_r; - /* "planarity/full/graphLib.pyx":178 + /* "planarity/full/graphLib.pyx":183 * * cdef int g6_ReadGraph(G6ReadIteratorP theG6ReadIterator): * return cgraphLib.g6_ReadGraph(theG6ReadIterator) # <<<<<<<<<<<<<< @@ -3845,7 +3879,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_ReadGraph(G6ReadIteratorP __pyx __pyx_r = g6_ReadGraph(__pyx_v_theG6ReadIterator); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":177 + /* "planarity/full/graphLib.pyx":182 * * * cdef int g6_ReadGraph(G6ReadIteratorP theG6ReadIterator): # <<<<<<<<<<<<<< @@ -3858,7 +3892,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_ReadGraph(G6ReadIteratorP __pyx return __pyx_r; } -/* "planarity/full/graphLib.pyx":181 +/* "planarity/full/graphLib.pyx":186 * * * cdef bool g6_EndReached(G6ReadIteratorP theG6ReadIterator): # <<<<<<<<<<<<<< @@ -3875,7 +3909,7 @@ static PyObject *__pyx_f_9planarity_4full_8graphLib_g6_EndReached(G6ReadIterator int __pyx_clineno = 0; __Pyx_RefNannySetupContext("g6_EndReached", 0); - /* "planarity/full/graphLib.pyx":182 + /* "planarity/full/graphLib.pyx":187 * * cdef bool g6_EndReached(G6ReadIteratorP theG6ReadIterator): * return cgraphLib.g6_EndReached(theG6ReadIterator) # <<<<<<<<<<<<<< @@ -3883,14 +3917,14 @@ static PyObject *__pyx_f_9planarity_4full_8graphLib_g6_EndReached(G6ReadIterator * */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBool_FromLong(g6_EndReached(__pyx_v_theG6ReadIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(g6_EndReached(__pyx_v_theG6ReadIterator)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - if (!(likely(PyBool_Check(__pyx_t_1)) || __Pyx_RaiseUnexpectedTypeError("bool", __pyx_t_1))) __PYX_ERR(0, 182, __pyx_L1_error) + if (!(likely(PyBool_Check(__pyx_t_1)) || __Pyx_RaiseUnexpectedTypeError("bool", __pyx_t_1))) __PYX_ERR(0, 187, __pyx_L1_error) __pyx_r = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L0; - /* "planarity/full/graphLib.pyx":181 + /* "planarity/full/graphLib.pyx":186 * * * cdef bool g6_EndReached(G6ReadIteratorP theG6ReadIterator): # <<<<<<<<<<<<<< @@ -3909,7 +3943,7 @@ static PyObject *__pyx_f_9planarity_4full_8graphLib_g6_EndReached(G6ReadIterator return __pyx_r; } -/* "planarity/full/graphLib.pyx":185 +/* "planarity/full/graphLib.pyx":190 * * * cdef int g6_FreeReader(G6ReadIteratorP *pG6ReadIterator): # <<<<<<<<<<<<<< @@ -3920,7 +3954,7 @@ static PyObject *__pyx_f_9planarity_4full_8graphLib_g6_EndReached(G6ReadIterator static int __pyx_f_9planarity_4full_8graphLib_g6_FreeReader(G6ReadIteratorP *__pyx_v_pG6ReadIterator) { int __pyx_r; - /* "planarity/full/graphLib.pyx":186 + /* "planarity/full/graphLib.pyx":191 * * cdef int g6_FreeReader(G6ReadIteratorP *pG6ReadIterator): * cgraphLib.g6_FreeReader(pG6ReadIterator) # <<<<<<<<<<<<<< @@ -3929,7 +3963,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_FreeReader(G6ReadIteratorP *__p */ g6_FreeReader(__pyx_v_pG6ReadIterator); - /* "planarity/full/graphLib.pyx":185 + /* "planarity/full/graphLib.pyx":190 * * * cdef int g6_FreeReader(G6ReadIteratorP *pG6ReadIterator): # <<<<<<<<<<<<<< @@ -3942,7 +3976,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_FreeReader(G6ReadIteratorP *__p return __pyx_r; } -/* "planarity/full/graphLib.pyx":190 +/* "planarity/full/graphLib.pyx":195 * * # Wraps functions declared in "../c/graphLib/io/g6-write-iterator.h" * cdef int g6_NewWriter(G6WriteIteratorP *pG6WriteIterator, graphP theGraph): # <<<<<<<<<<<<<< @@ -3953,7 +3987,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_FreeReader(G6ReadIteratorP *__p static int __pyx_f_9planarity_4full_8graphLib_g6_NewWriter(G6WriteIteratorP *__pyx_v_pG6WriteIterator, graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":191 + /* "planarity/full/graphLib.pyx":196 * # Wraps functions declared in "../c/graphLib/io/g6-write-iterator.h" * cdef int g6_NewWriter(G6WriteIteratorP *pG6WriteIterator, graphP theGraph): * return cgraphLib.g6_NewWriter(pG6WriteIterator, theGraph) # <<<<<<<<<<<<<< @@ -3963,7 +3997,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_NewWriter(G6WriteIteratorP *__p __pyx_r = g6_NewWriter(__pyx_v_pG6WriteIterator, __pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":190 + /* "planarity/full/graphLib.pyx":195 * * # Wraps functions declared in "../c/graphLib/io/g6-write-iterator.h" * cdef int g6_NewWriter(G6WriteIteratorP *pG6WriteIterator, graphP theGraph): # <<<<<<<<<<<<<< @@ -3976,7 +4010,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_NewWriter(G6WriteIteratorP *__p return __pyx_r; } -/* "planarity/full/graphLib.pyx":194 +/* "planarity/full/graphLib.pyx":199 * * * cdef int g6_InitWriterWithFileName(G6WriteIteratorP theG6WriteIterator, char *outputFileName): # <<<<<<<<<<<<<< @@ -3987,7 +4021,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_NewWriter(G6WriteIteratorP *__p static int __pyx_f_9planarity_4full_8graphLib_g6_InitWriterWithFileName(G6WriteIteratorP __pyx_v_theG6WriteIterator, char *__pyx_v_outputFileName) { int __pyx_r; - /* "planarity/full/graphLib.pyx":195 + /* "planarity/full/graphLib.pyx":200 * * cdef int g6_InitWriterWithFileName(G6WriteIteratorP theG6WriteIterator, char *outputFileName): * return cgraphLib.g6_InitWriterWithFileName(theG6WriteIterator, outputFileName) # <<<<<<<<<<<<<< @@ -3997,7 +4031,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_InitWriterWithFileName(G6WriteI __pyx_r = g6_InitWriterWithFileName(__pyx_v_theG6WriteIterator, __pyx_v_outputFileName); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":194 + /* "planarity/full/graphLib.pyx":199 * * * cdef int g6_InitWriterWithFileName(G6WriteIteratorP theG6WriteIterator, char *outputFileName): # <<<<<<<<<<<<<< @@ -4010,7 +4044,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_InitWriterWithFileName(G6WriteI return __pyx_r; } -/* "planarity/full/graphLib.pyx":198 +/* "planarity/full/graphLib.pyx":203 * * * cdef int g6_WriteGraph(G6WriteIteratorP theG6WriteIterator): # <<<<<<<<<<<<<< @@ -4021,7 +4055,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_InitWriterWithFileName(G6WriteI static int __pyx_f_9planarity_4full_8graphLib_g6_WriteGraph(G6WriteIteratorP __pyx_v_theG6WriteIterator) { int __pyx_r; - /* "planarity/full/graphLib.pyx":199 + /* "planarity/full/graphLib.pyx":204 * * cdef int g6_WriteGraph(G6WriteIteratorP theG6WriteIterator): * return cgraphLib.g6_WriteGraph(theG6WriteIterator) # <<<<<<<<<<<<<< @@ -4031,7 +4065,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_WriteGraph(G6WriteIteratorP __p __pyx_r = g6_WriteGraph(__pyx_v_theG6WriteIterator); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":198 + /* "planarity/full/graphLib.pyx":203 * * * cdef int g6_WriteGraph(G6WriteIteratorP theG6WriteIterator): # <<<<<<<<<<<<<< @@ -4044,7 +4078,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_WriteGraph(G6WriteIteratorP __p return __pyx_r; } -/* "planarity/full/graphLib.pyx":202 +/* "planarity/full/graphLib.pyx":207 * * * cdef void g6_FreeWriter(G6WriteIteratorP *pG6WriteIterator): # <<<<<<<<<<<<<< @@ -4054,7 +4088,7 @@ static int __pyx_f_9planarity_4full_8graphLib_g6_WriteGraph(G6WriteIteratorP __p static void __pyx_f_9planarity_4full_8graphLib_g6_FreeWriter(G6WriteIteratorP *__pyx_v_pG6WriteIterator) { - /* "planarity/full/graphLib.pyx":203 + /* "planarity/full/graphLib.pyx":208 * * cdef void g6_FreeWriter(G6WriteIteratorP *pG6WriteIterator): * cgraphLib.g6_FreeWriter(pG6WriteIterator) # <<<<<<<<<<<<<< @@ -4063,7 +4097,7 @@ static void __pyx_f_9planarity_4full_8graphLib_g6_FreeWriter(G6WriteIteratorP *_ */ g6_FreeWriter(__pyx_v_pG6WriteIterator); - /* "planarity/full/graphLib.pyx":202 + /* "planarity/full/graphLib.pyx":207 * * * cdef void g6_FreeWriter(G6WriteIteratorP *pG6WriteIterator): # <<<<<<<<<<<<<< @@ -4074,7 +4108,7 @@ static void __pyx_f_9planarity_4full_8graphLib_g6_FreeWriter(G6WriteIteratorP *_ /* function exit code */ } -/* "planarity/full/graphLib.pyx":207 +/* "planarity/full/graphLib.pyx":212 * * # Wraps functions declared in "../c/graphLib/planarityRelated/graphPlanarity.h": * cdef int gp_ExtendWith_Planarity(graphP theGraph): # <<<<<<<<<<<<<< @@ -4085,7 +4119,7 @@ static void __pyx_f_9planarity_4full_8graphLib_g6_FreeWriter(G6WriteIteratorP *_ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":208 + /* "planarity/full/graphLib.pyx":213 * # Wraps functions declared in "../c/graphLib/planarityRelated/graphPlanarity.h": * cdef int gp_ExtendWith_Planarity(graphP theGraph): * return cgraphLib.gp_ExtendWith_Planarity(theGraph) # <<<<<<<<<<<<<< @@ -4095,7 +4129,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity(graphP __p __pyx_r = gp_ExtendWith_Planarity(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":207 + /* "planarity/full/graphLib.pyx":212 * * # Wraps functions declared in "../c/graphLib/planarityRelated/graphPlanarity.h": * cdef int gp_ExtendWith_Planarity(graphP theGraph): # <<<<<<<<<<<<<< @@ -4108,7 +4142,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity(graphP __p return __pyx_r; } -/* "planarity/full/graphLib.pyx":211 +/* "planarity/full/graphLib.pyx":216 * * * cdef int gp_Embed(graphP theGraph, unsigned int embedFlags): # <<<<<<<<<<<<<< @@ -4119,7 +4153,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity(graphP __p static int __pyx_f_9planarity_4full_8graphLib_gp_Embed(graphP __pyx_v_theGraph, unsigned int __pyx_v_embedFlags) { int __pyx_r; - /* "planarity/full/graphLib.pyx":212 + /* "planarity/full/graphLib.pyx":217 * * cdef int gp_Embed(graphP theGraph, unsigned int embedFlags): * return cgraphLib.gp_Embed(theGraph, embedFlags) # <<<<<<<<<<<<<< @@ -4129,7 +4163,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Embed(graphP __pyx_v_theGraph, __pyx_r = gp_Embed(__pyx_v_theGraph, __pyx_v_embedFlags); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":211 + /* "planarity/full/graphLib.pyx":216 * * * cdef int gp_Embed(graphP theGraph, unsigned int embedFlags): # <<<<<<<<<<<<<< @@ -4142,7 +4176,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Embed(graphP __pyx_v_theGraph, return __pyx_r; } -/* "planarity/full/graphLib.pyx":215 +/* "planarity/full/graphLib.pyx":220 * * * cdef int gp_TestEmbedResultIntegrity(graphP theGraph, graphP origGraph, int embedResult): # <<<<<<<<<<<<<< @@ -4153,7 +4187,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_Embed(graphP __pyx_v_theGraph, static int __pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity(graphP __pyx_v_theGraph, graphP __pyx_v_origGraph, int __pyx_v_embedResult) { int __pyx_r; - /* "planarity/full/graphLib.pyx":216 + /* "planarity/full/graphLib.pyx":221 * * cdef int gp_TestEmbedResultIntegrity(graphP theGraph, graphP origGraph, int embedResult): * return cgraphLib.gp_TestEmbedResultIntegrity(theGraph, origGraph, embedResult) # <<<<<<<<<<<<<< @@ -4163,7 +4197,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity(graphP __pyx_r = gp_TestEmbedResultIntegrity(__pyx_v_theGraph, __pyx_v_origGraph, __pyx_v_embedResult); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":215 + /* "planarity/full/graphLib.pyx":220 * * * cdef int gp_TestEmbedResultIntegrity(graphP theGraph, graphP origGraph, int embedResult): # <<<<<<<<<<<<<< @@ -4176,7 +4210,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity(graphP return __pyx_r; } -/* "planarity/full/graphLib.pyx":220 +/* "planarity/full/graphLib.pyx":225 * * # Wraps functions declared in "../c/graphLib/planarityRelated/graphOuterplanarity.h": * cdef int gp_ExtendWith_Outerplanarity(graphP theGraph): # <<<<<<<<<<<<<< @@ -4187,7 +4221,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity(graphP static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":221 + /* "planarity/full/graphLib.pyx":226 * # Wraps functions declared in "../c/graphLib/planarityRelated/graphOuterplanarity.h": * cdef int gp_ExtendWith_Outerplanarity(graphP theGraph): * return cgraphLib.gp_ExtendWith_Outerplanarity(theGraph) # <<<<<<<<<<<<<< @@ -4197,7 +4231,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity(graph __pyx_r = gp_ExtendWith_Outerplanarity(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":220 + /* "planarity/full/graphLib.pyx":225 * * # Wraps functions declared in "../c/graphLib/planarityRelated/graphOuterplanarity.h": * cdef int gp_ExtendWith_Outerplanarity(graphP theGraph): # <<<<<<<<<<<<<< @@ -4210,7 +4244,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity(graph return __pyx_r; } -/* "planarity/full/graphLib.pyx":225 +/* "planarity/full/graphLib.pyx":230 * * # Wraps functions declared in "../c/graphLib/planarityRelated/graphDrawPlanar.h": * cdef int gp_ExtendWith_DrawPlanar(graphP theGraph): # <<<<<<<<<<<<<< @@ -4221,7 +4255,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity(graph static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":226 + /* "planarity/full/graphLib.pyx":231 * # Wraps functions declared in "../c/graphLib/planarityRelated/graphDrawPlanar.h": * cdef int gp_ExtendWith_DrawPlanar(graphP theGraph): * return cgraphLib.gp_ExtendWith_DrawPlanar(theGraph) # <<<<<<<<<<<<<< @@ -4231,7 +4265,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar(graphP __ __pyx_r = gp_ExtendWith_DrawPlanar(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":225 + /* "planarity/full/graphLib.pyx":230 * * # Wraps functions declared in "../c/graphLib/planarityRelated/graphDrawPlanar.h": * cdef int gp_ExtendWith_DrawPlanar(graphP theGraph): # <<<<<<<<<<<<<< @@ -4244,7 +4278,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar(graphP __ return __pyx_r; } -/* "planarity/full/graphLib.pyx":229 +/* "planarity/full/graphLib.pyx":234 * * * cdef int gp_DrawPlanar_RenderToFile(graphP theEmbedding, char *theFileName): # <<<<<<<<<<<<<< @@ -4255,7 +4289,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar(graphP __ static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile(graphP __pyx_v_theEmbedding, char *__pyx_v_theFileName) { int __pyx_r; - /* "planarity/full/graphLib.pyx":230 + /* "planarity/full/graphLib.pyx":235 * * cdef int gp_DrawPlanar_RenderToFile(graphP theEmbedding, char *theFileName): * return cgraphLib.gp_DrawPlanar_RenderToFile(theEmbedding, theFileName) # <<<<<<<<<<<<<< @@ -4265,7 +4299,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile(graphP __pyx_r = gp_DrawPlanar_RenderToFile(__pyx_v_theEmbedding, __pyx_v_theFileName); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":229 + /* "planarity/full/graphLib.pyx":234 * * * cdef int gp_DrawPlanar_RenderToFile(graphP theEmbedding, char *theFileName): # <<<<<<<<<<<<<< @@ -4278,7 +4312,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile(graphP return __pyx_r; } -/* "planarity/full/graphLib.pyx":233 +/* "planarity/full/graphLib.pyx":238 * * * cdef int gp_DrawPlanar_RenderToString(graphP theEmbedding, char **pRenditionString): # <<<<<<<<<<<<<< @@ -4289,7 +4323,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile(graphP static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString(graphP __pyx_v_theEmbedding, char **__pyx_v_pRenditionString) { int __pyx_r; - /* "planarity/full/graphLib.pyx":234 + /* "planarity/full/graphLib.pyx":239 * * cdef int gp_DrawPlanar_RenderToString(graphP theEmbedding, char **pRenditionString): * return cgraphLib.gp_DrawPlanar_RenderToString(theEmbedding, pRenditionString) # <<<<<<<<<<<<<< @@ -4299,7 +4333,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString(graph __pyx_r = gp_DrawPlanar_RenderToString(__pyx_v_theEmbedding, __pyx_v_pRenditionString); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":233 + /* "planarity/full/graphLib.pyx":238 * * * cdef int gp_DrawPlanar_RenderToString(graphP theEmbedding, char **pRenditionString): # <<<<<<<<<<<<<< @@ -4312,7 +4346,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString(graph return __pyx_r; } -/* "planarity/full/graphLib.pyx":238 +/* "planarity/full/graphLib.pyx":243 * * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK23Search.h": * cdef int gp_ExtendWith_K23Search(graphP theGraph): # <<<<<<<<<<<<<< @@ -4323,7 +4357,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString(graph static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":239 + /* "planarity/full/graphLib.pyx":244 * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK23Search.h": * cdef int gp_ExtendWith_K23Search(graphP theGraph): * return cgraphLib.gp_ExtendWith_K23Search(theGraph) # <<<<<<<<<<<<<< @@ -4333,7 +4367,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search(graphP __p __pyx_r = gp_ExtendWith_K23Search(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":238 + /* "planarity/full/graphLib.pyx":243 * * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK23Search.h": * cdef int gp_ExtendWith_K23Search(graphP theGraph): # <<<<<<<<<<<<<< @@ -4346,7 +4380,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search(graphP __p return __pyx_r; } -/* "planarity/full/graphLib.pyx":243 +/* "planarity/full/graphLib.pyx":248 * * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK33Search.h": * cdef int gp_ExtendWith_K33Search(graphP theGraph): # <<<<<<<<<<<<<< @@ -4357,7 +4391,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search(graphP __p static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":244 + /* "planarity/full/graphLib.pyx":249 * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK33Search.h": * cdef int gp_ExtendWith_K33Search(graphP theGraph): * return cgraphLib.gp_ExtendWith_K33Search(theGraph) # <<<<<<<<<<<<<< @@ -4367,7 +4401,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search(graphP __p __pyx_r = gp_ExtendWith_K33Search(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":243 + /* "planarity/full/graphLib.pyx":248 * * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK33Search.h": * cdef int gp_ExtendWith_K33Search(graphP theGraph): # <<<<<<<<<<<<<< @@ -4380,7 +4414,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search(graphP __p return __pyx_r; } -/* "planarity/full/graphLib.pyx":248 +/* "planarity/full/graphLib.pyx":253 * * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK4Search.h": * cdef int gp_ExtendWith_K4Search(graphP theGraph): # <<<<<<<<<<<<<< @@ -4390,7 +4424,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search(graphP __p static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search(graphP __pyx_v_theGraph) { int __pyx_r; - /* "planarity/full/graphLib.pyx":249 + /* "planarity/full/graphLib.pyx":254 * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK4Search.h": * cdef int gp_ExtendWith_K4Search(graphP theGraph): * return cgraphLib.gp_ExtendWith_K4Search(theGraph) # <<<<<<<<<<<<<< @@ -4398,7 +4432,7 @@ static int __pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search(graphP __py __pyx_r = gp_ExtendWith_K4Search(__pyx_v_theGraph); goto __pyx_L0; - /* "planarity/full/graphLib.pyx":248 + /* "planarity/full/graphLib.pyx":253 * * # Wraps functions declared in "../c/graphLib/homeomorphSearch/graphK4Search.h": * cdef int gp_ExtendWith_K4Search(graphP theGraph): # <<<<<<<<<<<<<< @@ -4463,8 +4497,8 @@ static int __Pyx_modinit_function_export_code(__pyx_mstatetype *__pyx_mstate) { #if !CYTHON_ASSUME_SAFE_MACROS if (unlikely(!__pyx_export_signature)) __PYX_ERR(0, 1, __pyx_L1_error) #endif - const char * __pyx_export_name = __pyx_export_signature + 562; - void (*const __pyx_export_pointers[])(void) = {(void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_EndReached, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DupGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_New, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_FreeReader, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_NewReader, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_ReadGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_NewWriter, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_WriteGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_InitWriterWithFileName, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetEdgeCapacity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetN, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Read, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Write, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_CopyGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EnsureEdgeCapacity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetVertexDegree, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_InitGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsVertex, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_FindEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_AddEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Embed, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_FreeWriter, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Free, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ReinitGraph, (void (*)(void)) NULL}; + const char * __pyx_export_name = __pyx_export_signature + 563; + void (*const __pyx_export_pointers[])(void) = {(void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_EndReached, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DupGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_New, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_FreeReader, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_NewReader, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_ReadGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_InitReaderWithFileName, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_NewWriter, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_WriteGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_InitWriterWithFileName, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_DrawPlanar, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K23Search, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K33Search, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_K4Search, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Outerplanarity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ExtendWith_Planarity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetEdgeCapacity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetN, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdgeStorage, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundEdges, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_LowerBoundVertices, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdgeStorage, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundEdges, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_UpperBoundVertices, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToFile, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Read, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DrawPlanar_RenderToString, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Write, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_CopyGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_TestEmbedResultIntegrity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DeleteEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EdgeInUse, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_EnsureEdgeCapacity, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetFirstEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNeighbor, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetNextEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_GetVertexDegree, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_InitGraph, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_IsVertex, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_FindEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_AddEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_DynamicAddEdge, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Embed, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_g6_FreeWriter, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_Free, (void (*)(void))&__pyx_f_9planarity_4full_8graphLib_gp_ReinitGraph, (void (*)(void)) NULL}; void (*const *__pyx_export_pointer)(void) = __pyx_export_pointers; const char *__pyx_export_current_signature = __pyx_export_signature; while (*__pyx_export_pointer) { @@ -5108,33 +5142,33 @@ static int __Pyx_InitCachedConstants(__pyx_mstatetype *__pyx_mstate) { static int __Pyx_InitConstants(__pyx_mstatetype *__pyx_mstate) { CYTHON_UNUSED_VAR(__pyx_mstate); { - const struct { const unsigned int length: 11; } index[] = {{1},{27},{22},{21},{22},{17},{23},{23},{22},{5},{13},{5},{4},{2},{20},{4},{13},{15},{8},{18},{18},{15},{8},{29},{24},{19},{19},{3},{13},{5},{8},{10},{8},{16},{23},{3},{12},{12},{6},{12},{10},{8},{6},{1353},{12},{21},{21},{13}}; - #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (814 bytes) */ -const char* const cstring = "(\265/\375`\310\006%\031\000&\346{3P\215s\3209\217H\363H\306\334\264\210R\377\231L\022\264E\272A\371\335\222\310\362\014yl\202\224JO\213\230\210\230\245\252\330qW\023V\344k\010\201\020mu\000a\000l\000\020\327\005\306y\223\306\353\260\214\202\232\272\3620\256Sq8\357\343\334\217\\\353\227\224\032\221\266\356\314\306\253\3252\033/\223\230(m\243U]6Y\017\227\213C\206\333X\023\030n\252:\256\3628\033n\322\246l\353L\034\325\3355e\026UIh*\017\323`Ycx\030f\332&LW\027U\2657\215H\241\305C3P\030\357\307\000\202\371\303@zzc\215`\030\021\376\335\017\346\370\361\331\357\270\273\336\374~\301\2307h\030ew\2076\264XD\356\241X\035\314\323vW\032C\3358\344O\033\323\376J\273/\202\226\346\235\346\212\227\236a\357fYl\357W\207_\267\254\371\323]-\305\3279z\372\264\262\272\206\214\036\227\361~W\332\240\304^\351g{\255\264X*+\t\3071\214\030\377f\365~m\327?o\036. y\243w\027\207\214(^\252g\365\037U\035z(j\016R\013\364\264\363\264b\327\335\257%r\355\n3\325\3417\231\016\222\321\271Y\253\206\230^?\212k\366\247\267s#HR\026(\013\025\n\345+\235(Lj9\022(\333Da\273\366\343\365\307ft\016\342J\250P<\033\322\206=\203\221\003\007\000!\t\005\245\202\200\222\212\017\203I\t\200d\002\341#\302C \240\244a\004S)U\002J\000:\016@\010@\016\006J\010D\032&%:\247Y\251\2051\277\237S#\037]\353\001}\324\037_j\371\315\270bN\305\374\035t\352\363\257\330\203\031;7\335\023\252\036\273G\n-\346\253\364~g\275\032\206\034I\377\272\005\366/^\373\335\254\331J\\\027\331L\223\001\200\227\250\341\035\"\245hD\n\223\242\024\20610\204(\311h\035\2210C\tSdD\204\244$m:81\224\337\213\227x\3015\003\217D5\261\216\0173\027\333<\301\300\335g\343\341A\266F<\266\037#{8\253\370\010\021_\023)C\025,\026\3345\032\254D\321\225\013\362\224>\313\010f\031\177\347\340\231\255\226k\234{N`\331\236\303\273\261\213Qd\221\3100\236\312\321,\270vQ\r\274\0279\000@\316\266+M\360\257,;'\234\271\344I\033O\001\203Av\362\236\363\241\\\204N\237!\277\315\010\002\024\0202\234\301H\254#\326\367\023\230\207*\023\372\035\254br\021~\032r\245\322\020{\217\264\245\225\236g\237r""\217\270\346`\306\325;\235\262\266\261\223R#@\355\254^RgaS\1775&\323\301\304@\2177jx\331\r\201m\244\210\235\244WXFPy\265u\241\307`Ss\202B\007#Nf\t!gw\207g\303\023\363\"\243\014\205\261\001\256\t\212_\271\"\234E5\240tzU\224d\315\036\367\377\350\340\302\203\307;)\305Q\374\031\317\017\034s\025"; - PyObject *data = __Pyx_DecompressString(cstring, 814, 3); + const struct { const unsigned int length: 11; } index[] = {{1},{27},{22},{21},{22},{17},{23},{23},{22},{5},{13},{5},{4},{2},{20},{4},{13},{15},{8},{18},{18},{15},{8},{29},{24},{19},{19},{3},{13},{5},{8},{10},{8},{16},{23},{3},{12},{12},{6},{12},{10},{8},{6},{1372},{12},{21},{21},{13}}; + #if (CYTHON_COMPRESS_STRINGS) == 3 && __PYX_LIMITED_VERSION_HEX >= 0x030e0000 /* compression: zstd (820 bytes) */ +const char* const cstring = "(\265/\375`\333\006U\031\000\226\346|3P\215s\3209\217H\363H\306\334\264\210R\377\231L\022\264E\272A\371\335\222\310\362\014yl\202\224JO\213\230\210\230\245\252\330qW\023V\344k\010\201\020mv\000c\000m\0008B\\\027\030\347M\032\257\3032\nj\352\312\303\270N\305\341\274\217s?r\255_RjD\332\2723\033\257V\313l\274Lb\242\264\215Vu\331d=\\.\016\031ncM`\270\251\352\270\312\343l\270I\233\262\2553qTw\327\224YT%\241\251\234*>B\340\327\004\311\000\002\353\202\273\244\006\203Pt\345\202<\345\237\275\004\003\214\245\363x\344V\2335\016=\007Y\366\340\363\026\330\020)\312Md\030\017\3454*\200\366@\215\246\0279\000\310\316\006+\371\260R\226\235\023\337\334\310\244\315^ b\020\235\274\345\3348\227\243\323f\227\317\266\001\203\332B\213g\032\211\3659\360\235\n\034\206%3}DV\257\334\217\177\211""\r;\004\255+7\227\266\264\322\363\354\223\356\021\327\034\314\250*\246Y&6vRj\304\252MUIJ:l\345Wx\362\033\374\014\244yS\303\213i\330l\203n\3540\275b2\202\nX{\027:\006S\232\223%8,q\206L\0109\273;8\033\036\314\213\035k\250\306\206\262&hp\345\024\341\027\325\202\322)Uq$K\364\270\377G\007\027\036<\336_)\216b\310x~\240\223\253"; + PyObject *data = __Pyx_DecompressString(cstring, 820, 3); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (955 bytes) */ -const char* const cstring = "BZh91AY&SY\032,J4\000\000\213\377\376e\032$\002`\365\275\000\277\377\377\340\277\377\377\340@@\000@@@@\000@@@@P\003\230U2\362vr\256\270$\224\324\311\251\344\230\207\250\311\243\3244i\3524\364@4\0314\000\0004\304\022J&'\242F\323!\2214\003&@\000\000\000\003@\000\221)\351$\364\236JmM\246\204\304\317T\304\003M\000\014\232\001\352hh\365\r\2448\310\323&&\203&L&\231\003!\2404\006\23140\002h\014$T\302\236\246%<\246h\t\207\250\324i\200\201\240\321\200\215\000\032cLC\006\315\004~=|\246nF3\243\236\205A4T\350\252\024\303%\361\274\025@\342\037\303\010\213X\271S_\335\031\316\244Vj\221\322\264d\232\177\003#M\277l oV\030\306\307\300%-\026\033oAy\302\301\027\341\303-Y\02062\250a\005\020\330\256.(\211\032n\203c3\355~\271\3421\365r\207\213\215\270=\2105\2206\336S\242\235\223\254X\031_\300\255\256\311\373\341r]V\204\352\t\327\007j\323\210\007\311\261\354\260\371\256d\242\357\245\253`\257\034\375Y\256\3701\273\317\035Ql\203\206\0076\250\276*\327 \374\020\247\226#\n\007\241\254'\220G\005\037\352\317J\265$%\256\25041*,D\346lm\332R[o1\272-\345\2719\261\344\265\312\235\344\263P+Xd\270\234\t\276\336\334\337\211:ew\033\343c\033\033lcAo\337\257ND\370\261E\356\t\362\353\270NR\316\247z\230\317\004Y\222\261Q@\312\365\027\305\204\301\003\213\360\3512\257c\337\025G\352\335.D\372\303zk\2558\352(\365\254@(\312B\2331\312\350Tf\026i\2331\224\014F\310\031H\021\003%t@TY\202\215\370,\256\267\210\255@\252\225\276\326LY\343>\264\3518\274\005\262\241\030\324\330\244\363pJ\206J\204@\342]\275\371v\313\024\200\340/$,Q\316C+M\030\344\202\346\261\222\300k\3224\314\355\201E\362D$\326}S\376XQ\326\3417L\254$NX\016\376\020\331\241A\366P\247S\325[.\252\013\031\226!SR\325\0250\241\247\\\216\254\nxR7V\277I\271\226\270\266\340\322\216,[s\202gC\025\002\001\342k,\30399#!e\202\244\214\3334\246\243\035\325*dh\266\231^I\"e\361\232F\267\376\351\363 \316\025\303I\341n\t\004\232\264b3Z%K\3608\303\"bmZi\232\t\254CB\030\252En\007\251D\325\331\r5L\376%,\317L\342\210\254\001\215\221\215\211\304M6B\222\265! \244e\276\003(\206Z3?(""\345\306\255\263\ruZ\222\022'\302\323\r\223\210y\023\305X\333\215\352\357A#\252\201\037\262\273\320\013\031\000+\2166Q\332\331;\320\004\240\362\037\025\207{\316\0369\254\230\375:\032\311\0169\005T\317R\314\201\023\333$L\tCS\362N\025\026\n2\256(\332\007\220\360\252@\302\243\024\r\264X\2049 \363)\2542\327U\337\271\004f\211\335aXl07\033\332\252\254v\227\353\004\250\323h\r\226#\265\347\244;\r\370\021\023]UDe9\022m\0259\211\253Pa\262\302 2\005\2107I;\363\003-\271U\313\305r\254n\220V\354?b\363\345RUw:4\311\364\323\263\014N,\304\245\264\317Rs\233\031\210\230\306\354\206ES-\337(/\374\371\220z\353\261\027\370\273\222)\302\204\200\321bQ\240"; - PyObject *data = __Pyx_DecompressString(cstring, 955, 2); + #elif (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (959 bytes) */ +const char* const cstring = "BZh91AY&SY#\307{&\000\000\214\377\376e\032$\002`\365\275\000\277\377\377\340\277\377\377\340@@\000@@@@\000@@@@P\003\230U/e\020i\260d\243\024\311\352&\322yG\244\311\351\032<\211\247\251\240\032\014\231\r\000\001\246j\034di\223\023A\223&\023L\201\220\320\032\003L\232\030\0014\006\022$\322@\321\003S\324h\310\332jz@z \000\320\003\023L\232\033Hq\221\246LM\006L\230M2\006C@h\r2h`\004\320\030H\242\236\211\264Ry6*y\242OM\023F@\0324\032\000\000=@\006!\203\031\244\216_g\t\305\357c9\271*Q\023U^jB\230d\276\007r\2208\207\363\276\"\326\207\302\241\177t\364\035H\260\330#\245i\3075\376\0066\233~\350@\336\3041\215\217\272%-\027\215\247\244\312g`\214\267\357\314B\275H\033\031Hj\n\241\261a0\225D\215V\"\006\331\321\332\347\344\210\326\352\341\r\376\006\340\366\220-\220\022j\007V\245\301\224\034hqc7\317l\371\236\370Q9&\005K.\340\016\311Y\240\025&\373\354\264}\327\311(\305\370\265l\226k\317\023;\0179\254\367O-\"\331\007\014\017\224 \3463s\205\261\342\341\3162\220\034z0\\ 5\224\277\243r\331\265\020\222\301R=L\322B\375\033cn\322\262\333|f\340\262\255\271\343\326\307k\225;\211q\324,W\344\302M\304\337{jr\342N\271\036\0230\330\306\306\333\030\320[\313\257^\024\367\361FW\001\\\321\276\013\346\010L.X\246=\010\211\265\002\212\320\354\307(7\204\313|J\313\250kW\373\336Tq\3510\246+\217{6\227iV|\373l$)\232\003E\323\313U\ng\033y\236\266\022e\366\201\225\201\0202W<\005\013\327*\337\212\365\226\002\353\261\302n\271\006\022',\007\224\316\0335*>\330\224\352\372\354k\r \274\314\221\n\272\266\250\243\n\230,\221\322\342\234\351\035\305\327\3516\362Y\026\341\013\261\243\026\324\334\231\322\305%\204\033\331[\035\025\0224\231Xjcov\335\353\2304-\264\321{\300\321u\323eC05\376\266Q\350Az[\006\223\310\334A\022j\301\210\265\242X\352\211\316\0354\304\332\260\322gMe\032\020\305\004M\304\345\\\0225\360\206\245V~e\273l-\250\321N`6\264me\302-\267qWf""\001X\253k\300\003T\215qf\216R\245\316\263\266=J\372\350)\210^\307\320\344 +i\260\345\2342BU\325\337\250\n\341:b\025\262 O\025\314\306\354l\242\230\202Q|G\221d\336\274\005v\035\330\270\343\266H|b\005\341p\301\252\010\"\035p\322\200\022\305hoI\2454v\260Sr\202 ( a\003,NDV\2049 \352*\026Io\251\325\261\006*\021F\312\311\206\206\007I\275Q\216\355\207\005\341\211B\266\200\301\210\341\346\224\035Fh\021\023e)\023[*U\264C\260MZ\203S\006\002@e\014\010<\"\321\366\000(\251A\340\302,\010\032\354@\337\262\2738V \022\034\025\332P\254\244\350\201\004\340\276L\222\243\225j\251I\240g\027F\207t\215&\n0y3\027\317\230g\256\322\n\177\342\356H\247\n\022\004x\357d\300"; + PyObject *data = __Pyx_DecompressString(cstring, 959, 2); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (810 bytes) */ -const char* const cstring = "x\332}T\301N\333@\020\r\022\267\252\007$\256\225\302\251\020\241 \n\342\212Ll\007\227\220\030\307\224\366\264\332\330\023g[g\355\256\327$\271\365\330O\340\310\261\307~B\217=r\344s:k\343$6N-\331;\363\336\314\354\354\314x\317\343\220r*\230\\\034\215\3230<\n\004\215'=6j\307\213\271\346\022C\357\032\244\243\331Z\307r\277\220\236um\271\306\365\205\241\233=\255;$\272\243\335\331=\255\2579k\340\340\3265\234W\350+`hhN\347\322\0348W\037Nj\341\223z\370\324\324zC\243?\350g\254\256]\364Pq\007W\375\210\303\340\212\020{1\307Wg\236$}\230K\007\306\256sk\3349\2308\321\364\217=k\350.\225k\315u\254\317\271\332=\243\311\202{,j{\221\210R\3118$^\210_\3028\221\202z0\242\3367\340^\344\203O\356A$,\342\204\214S\356\021\022\304\244\013\022\313f\027\325\374\224\033\230X\323\234\264E\364\025<\371\n\277I\031\310k\014j\2064@hX\201\030\227\204%d\231\024\2230M\010\231RL\013\237i\344\247!(\211\323)\256\034f%\367e{\333\252\275\355\242\275q\024\023\202-&\036\215\231\362\376\236\3220\217 @\246\002c' _b\242\344\303\230\246\241$DB\202\337{\032\246\220\330\213\301H\235\251\331\332\357\2369@}K\202\2402\022\366A#\333\310n\356\347\353J\277\217\230\177\320\300C5\253>\315\326&\374\260YD\251\343\353\321\303\2467\241b-\346\035\026\001\376\027\264l\260\001\256\204-B\224\2365fe^\207\226\243\024\350a\023\301\nSJ\265\014\326\231gH}>\250l\360\250|*\006)OX\300\301\317)\325\305\272\242\026\314K\267+:N\301\0311\270\217\215\362&\3407p\332\3654\356*N\311}\230)\003S\000\250V\202P\032\202+EI/\346g\304\342L\346\324\035\223\023\223\205\320\307i}\361\311\022\313|2\251\344\224se\247\230\030s\t\334W(\321\005\235\345?r\205\300\253j\010Tx\223*~\262\001?\255\205\007)\356\277\3741+\244\275\216\343\375`\370\001thL\275\025\324Wk/\232\201\270\210R\356+\213!\326\237\006\360\232H\312\020^?\222y9z\033\307\365\021\312D\305v=\302\252P\330\032\216\235p#URE\251\316l0\031J\301x\240\310\254\023J\350D\361b9\007.^1\306t\0048'\t\3369\026\227\020\024\005\321!\004\t*\255\254l\270Z\3746\311\025\236\244\002j\312e2\221\310\302E\225\017X0\031Eb\251\316""\327Yu>\230\353\270%d\220\232\230ejVRXZIn\250d\223\345\225R\262\346/\305\354\014\305D\027\003\031gZ^!V\204~j\034\377\336y~\273\367\270\363\270\367c\353y\273\365\324\352\3749~\336~\363\363\374\341\375\032x\371wk\r|j\274{\270y\336\336}\332\335\377\265\365\017V\031\265\314"; - PyObject *data = __Pyx_DecompressString(cstring, 810, 1); + #elif (CYTHON_COMPRESS_STRINGS) != 0 /* compression: zlib (817 bytes) */ +const char* const cstring = "x\332}T\301N\333@\020\r\022\267\252\007$\256\225\302\251\200\020\210\202\270\"\023\333\301%$\306qJ{Zm\354\301\331\326Y\273\3535$\267\036\373\t\0349\366\330O\350\261G\216\371\234\316\3328\261\215SK\366\316\27473;;3\336\3638\244\234\n&\347Gwi\030\036\005\202\306\223\036\033\037\306\363\231\346\022C\357\032\244\243\331Z\307r\277\220\236um\271\306\365\205\241\233=\255;$\272\243\335\332=\255\2579%p0r\r\347\025\372\n\030\032\232\323\2714\007\316\325\207\223F\370\244\031>5\265\336\320\350\017\372\031\253k\027=T\334\301U?\3420\270\"\304\236\317\360\325\231'I\037f\322\201;\327\031\031\267\016&N4\375c\317\032\272K\345Zs\035\353s\256v\317h2\347\036\213\016\275HD\251d\034\022/\304/a\234HA=\030S\357\033p/\362\301'\367 \022\026qB\356R\356\021\022\304\244\013\022\313f\027\325\374\224\033\230X\323\234\264E\364\025<\371\n\277I\031\310k\014j\2064@hX\203\030\227\204%d\231\024\2230M\010\231RL\013\237i\344\247!(\211\323)\256\034\036*\356\313\366\036\252\366\036\026\355\215\243\230\020l1\361h\314\224\367\367\224\206y\004\0012\025\030;\001\371\022\023%\037\356h\032JB$$\370\275\247a\n\211=\037\214\325\231\332\373\273\3353\007\250oI\020TF\302\336ke\033\331\355\335|]\351\367\021\363\367Zx\250v\335\247\275\277\016?h\027Q\232\370f\364\240\355M\250(\305\274\305\"\300\377\202V\r\326\300\265\260E\210\312SbV\346Mh5J\201\036\264\021\2541\225T\253`\223y\2064\347\203\312\032\217\332\247\236r\312\023\026p\360sN\265\261\251\252\005\363\322\356\232\216cpF\014\356c\247\274\t\370-\034w=\215\273\212Sr\037\036\224\201)\000T/A(\r\301\225\242\244\027\3633bq&s\352\226\311\211\311B\350\343\270\276\370d\211e>\231Tq\312\271\252SL\214\231\004\356+\224\350\202>\344\177r\215\300\273j\010Tx\223:~\262\006?m\204\007)\356\277\3743k\244]\306\361\2020\374\000:4\246\336\n\352\253\265\027=\200\270\210R\356+\213!\326\237\006\360\232H\252\020\336?\222y9:\212\343\346\010U\242f[\216\260*\024\266\206c'\334H\225TQ\2523kL\206R0\036(2\353\204\022:Q<_\316\201\213w\2141\035\003\316I\202\227\216\305%\004EAt\010A\202J++\033\256\026""\037%\271\302\223T@C\271L&\022Y\270\250\362\001\013&\343H,\325Y\231U\347\203\231\216[B\006\251\211Y\246f%\205\245\225\344\206J6Y^)%k\376R\324\347x\1772\257\204d\247*f\274\030\3218\323\362\232\261b\263\347\326\361\357\255\305\333\235\247\255\247\235\037\033\213\315\375\347\375\316\237\343\305\346\233\237\347\217\357K\340\345\337\215\022\370\334z\367x\263\330\334~\336\336\375\265\361\017\3040\274E"; + PyObject *data = __Pyx_DecompressString(cstring, 817, 1); if (unlikely(!data)) __PYX_ERR(0, 1, __pyx_L1_error) const char* const bytes = __Pyx_PyBytes_AsString(data); #if !CYTHON_ASSUME_SAFE_MACROS if (likely(bytes)); else { Py_DECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) } #endif - #else /* compression: none (1992 bytes) */ -const char* const bytes = "?planarity/full/graphLib.pyxAT_EDGE_CAPACITY_LIMITEMBEDFLAGS_DRAWPLANAREMBEDFLAGS_OUTERPLANAREMBEDFLAGS_PLANAREMBEDFLAGS_SEARCHFORK23EMBEDFLAGS_SEARCHFORK33EMBEDFLAGS_SEARCHFORK4FALSENONEMBEDDABLENOTOKNoneOK__Pyx_PyDict_NextRefTRUEWRITE_ADJLISTWRITE_ADJMATRIXWRITE_G6asyncio.coroutinescline_in_tracebackencoded_version__func__gp_GetLibPlanarityVersionFullgp_GetProjectVersionFullgp_GetQuietModeFlaggp_SetQuietModeFlagint_is_coroutineitems__main____module____name__newQuietModeFlagplanarity.full.graphLibpop__pyx_capi____qualname__return__set_name__setdefault__test__valuesPyObject *(G6ReadIteratorP)\000graphP (graphP)\000graphP (void)\000int (G6ReadIteratorP *)\000int (G6ReadIteratorP *, graphP)\000int (G6ReadIteratorP)\000int (G6ReadIteratorP, char *)\000int (G6WriteIteratorP *, graphP)\000int (G6WriteIteratorP)\000int (G6WriteIteratorP, char *)\000int (graphP)\000\000\000\000\000\000\000\000\000\000\000\000\000\000int (graphP, char *)\000\000int (graphP, char **)\000int (graphP, char *, int)\000int (graphP, graphP)\000int (graphP, graphP, int)\000int (graphP, int)\000\000\000\000\000\000\000\000\000\000int (graphP, int, int)\000int (graphP, int, int, int, int)\000int (graphP, unsigned int)\000void (G6WriteIteratorP *)\000void (graphP *)\000void (graphP)\000g6_EndReached\000gp_DupGraph\000gp_New\000g6_FreeReader\000g6_NewReader\000g6_ReadGraph\000g6_InitReaderWithFileName\000g6_NewWriter\000g6_WriteGraph\000g6_InitWriterWithFileName\000gp_ExtendWith_DrawPlanar\000gp_ExtendWith_K23Search\000gp_ExtendWith_K33Search\000gp_ExtendWith_K4Search\000gp_ExtendWith_Outerplanarity\000gp_ExtendWith_Planarity\000gp_GetEdgeCapacity\000gp_GetN\000gp_LowerBoundEdgeStorage\000gp_LowerBoundEdges\000gp_LowerBoundVertices\000gp_UpperBoundEdgeStorage\000gp_UpperBoundEdges\000gp_UpperBoundVertices\000gp_DrawPlanar_RenderToFile\000gp_Read\000gp_DrawPlanar_RenderToString\000gp_Write\000gp_CopyGraph\000gp_TestEmbedResultIntegrity\000gp_DeleteEdge\000gp_EdgeInUse\000gp_EnsureEdgeCapacity\000gp_Get""FirstEdge\000gp_GetNeighbor\000gp_GetNextEdge\000gp_GetVertexDegree\000gp_InitGraph\000gp_IsEdge\000gp_IsVertex\000gp_FindEdge\000gp_AddEdge\000gp_Embed\000g6_FreeWriter\000gp_Free\000gp_ReinitGraph\320\0001\260\021\330\r!\240\021\240!\200\001\330\004*\320*C\3001\330\004\013\210?\230'\240\021\240!\200\001\330\004*\320*H\310\001\330\004\013\210?\230'\240\021\240!\320\000\035\230Q\330\004\024\320\024(\250\001"; + #else /* compression: none (2011 bytes) */ +const char* const bytes = "?planarity/full/graphLib.pyxAT_EDGE_CAPACITY_LIMITEMBEDFLAGS_DRAWPLANAREMBEDFLAGS_OUTERPLANAREMBEDFLAGS_PLANAREMBEDFLAGS_SEARCHFORK23EMBEDFLAGS_SEARCHFORK33EMBEDFLAGS_SEARCHFORK4FALSENONEMBEDDABLENOTOKNoneOK__Pyx_PyDict_NextRefTRUEWRITE_ADJLISTWRITE_ADJMATRIXWRITE_G6asyncio.coroutinescline_in_tracebackencoded_version__func__gp_GetLibPlanarityVersionFullgp_GetProjectVersionFullgp_GetQuietModeFlaggp_SetQuietModeFlagint_is_coroutineitems__main____module____name__newQuietModeFlagplanarity.full.graphLibpop__pyx_capi____qualname__return__set_name__setdefault__test__valuesPyObject *(G6ReadIteratorP)\000graphP (graphP)\000graphP (void)\000int (G6ReadIteratorP *)\000int (G6ReadIteratorP *, graphP)\000int (G6ReadIteratorP)\000int (G6ReadIteratorP, char *)\000int (G6WriteIteratorP *, graphP)\000int (G6WriteIteratorP)\000int (G6WriteIteratorP, char *)\000int (graphP)\000\000\000\000\000\000\000\000\000\000\000\000\000\000int (graphP, char *)\000\000int (graphP, char **)\000int (graphP, char *, int)\000int (graphP, graphP)\000int (graphP, graphP, int)\000int (graphP, int)\000\000\000\000\000\000\000\000\000\000int (graphP, int, int)\000int (graphP, int, int, int, int)\000\000int (graphP, unsigned int)\000void (G6WriteIteratorP *)\000void (graphP *)\000void (graphP)\000g6_EndReached\000gp_DupGraph\000gp_New\000g6_FreeReader\000g6_NewReader\000g6_ReadGraph\000g6_InitReaderWithFileName\000g6_NewWriter\000g6_WriteGraph\000g6_InitWriterWithFileName\000gp_ExtendWith_DrawPlanar\000gp_ExtendWith_K23Search\000gp_ExtendWith_K33Search\000gp_ExtendWith_K4Search\000gp_ExtendWith_Outerplanarity\000gp_ExtendWith_Planarity\000gp_GetEdgeCapacity\000gp_GetN\000gp_LowerBoundEdgeStorage\000gp_LowerBoundEdges\000gp_LowerBoundVertices\000gp_UpperBoundEdgeStorage\000gp_UpperBoundEdges\000gp_UpperBoundVertices\000gp_DrawPlanar_RenderToFile\000gp_Read\000gp_DrawPlanar_RenderToString\000gp_Write\000gp_CopyGraph\000gp_TestEmbedResultIntegrity\000gp_DeleteEdge\000gp_EdgeInUse\000gp_EnsureEdgeCapacity\000gp""_GetFirstEdge\000gp_GetNeighbor\000gp_GetNextEdge\000gp_GetVertexDegree\000gp_InitGraph\000gp_IsEdge\000gp_IsVertex\000gp_FindEdge\000gp_AddEdge\000gp_DynamicAddEdge\000gp_Embed\000g6_FreeWriter\000gp_Free\000gp_ReinitGraph\320\0001\260\021\330\r!\240\021\240!\200\001\330\004*\320*C\3001\330\004\013\210?\230'\240\021\240!\200\001\330\004*\320*H\310\001\330\004\013\210?\230'\240\021\240!\320\000\035\230Q\330\004\024\320\024(\250\001"; PyObject *data = NULL; CYTHON_UNUSED_VAR(__Pyx_DecompressString); #endif diff --git a/planarity/full/graphLib.pxd b/planarity/full/graphLib.pxd index 1858de8..6c76dac 100644 --- a/planarity/full/graphLib.pxd +++ b/planarity/full/graphLib.pxd @@ -26,17 +26,18 @@ cdef int gp_FindEdge(graphP theGraph, int u, int v) cdef int gp_GetVertexDegree(graphP theGraph, int v) cdef int gp_AddEdge(graphP theGraph, int u, int ulink, int v, int vlink) +cdef int gp_DynamicAddEdge(graphP theGraph, int u, int ulink, int v, int vlink) cdef int gp_DeleteEdge(graphP theGraph, int e) -cdef int gp_LowerBoundEdgeStorage(graphP theGraph) -cdef int gp_UpperBoundEdgeStorage(graphP theGraph) +cdef int gp_LowerBoundEdges(graphP theGraph) +cdef int gp_UpperBoundEdges(graphP theGraph) cdef int gp_IsEdge(graphP theGraph, int v) cdef int gp_EdgeInUse(graphP theGraph, int e) -cdef int gp_LowerBoundEdges(graphP theGraph) -cdef int gp_UpperBoundEdges(graphP theGraph) +cdef int gp_LowerBoundEdgeStorage(graphP theGraph) +cdef int gp_UpperBoundEdgeStorage(graphP theGraph) cdef int gp_GetNextEdge(graphP theGraph, int e) diff --git a/planarity/full/graphLib.pyx b/planarity/full/graphLib.pyx index f1f5b6b..0151283 100644 --- a/planarity/full/graphLib.pyx +++ b/planarity/full/graphLib.pyx @@ -105,16 +105,21 @@ cdef int gp_AddEdge(graphP theGraph, int u, int ulink, int v, int vlink): return cgraphLib.gp_AddEdge(theGraph, u, ulink, v, vlink) +cdef int gp_DynamicAddEdge(graphP theGraph, int u, int ulink, int v, int vlink): + return cgraphLib.gp_DynamicAddEdge(theGraph, u, ulink, v, vlink) + + cdef int gp_DeleteEdge(graphP theGraph, int e): return cgraphLib.gp_DeleteEdge(theGraph, e) -cdef int gp_LowerBoundEdgeStorage(graphP theGraph): - return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) +cdef int gp_LowerBoundEdges(graphP theGraph): + return cgraphLib.gp_LowerBoundEdges(theGraph) -cdef int gp_UpperBoundEdgeStorage(graphP theGraph): - return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) +cdef int gp_UpperBoundEdges(graphP theGraph): + return cgraphLib.gp_UpperBoundEdges(theGraph) + cdef int gp_IsEdge(graphP theGraph, int e): return cgraphLib.gp_IsEdge(theGraph, e) @@ -124,12 +129,12 @@ cdef int gp_EdgeInUse(graphP theGraph, int e): return cgraphLib.gp_EdgeInUse(theGraph, e) -cdef int gp_LowerBoundEdges(graphP theGraph): - return cgraphLib.gp_LowerBoundEdges(theGraph) +cdef int gp_LowerBoundEdgeStorage(graphP theGraph): + return cgraphLib.gp_LowerBoundEdgeStorage(theGraph) -cdef int gp_UpperBoundEdges(graphP theGraph): - return cgraphLib.gp_UpperBoundEdges(theGraph) +cdef int gp_UpperBoundEdgeStorage(graphP theGraph): + return cgraphLib.gp_UpperBoundEdgeStorage(theGraph) cdef int gp_GetNextEdge(graphP theGraph, int e):