SourceForge logo
SourceForge logo
Menu

matplotlib-checkins

From: <js...@us...> - 2008年08月04日 18:40:29
Revision: 5971
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5971&view=rev
Author: jswhit
Date: 2008年08月04日 18:40:19 +0000 (2008年8月04日)
Log Message:
-----------
obsolete files
Removed Paths:
-------------
 trunk/toolkits/basemap/src/basemap_pycompat.h
 trunk/toolkits/basemap/src/pycompat.h
Deleted: trunk/toolkits/basemap/src/basemap_pycompat.h
===================================================================
--- trunk/toolkits/basemap/src/basemap_pycompat.h	2008年08月04日 18:38:38 UTC (rev 5970)
+++ trunk/toolkits/basemap/src/basemap_pycompat.h	2008年08月04日 18:40:19 UTC (rev 5971)
@@ -1,7 +0,0 @@
-#include "Python.h"
-
-/* Suggested by M. v. Loewis: http://mail.python.org/pipermail/python-dev/2006-March/062561.html */
-
-#if (PY_VERSION_HEX < 0x02050000)
-typedef int Py_ssize_t;
-#endif
Deleted: trunk/toolkits/basemap/src/pycompat.h
===================================================================
--- trunk/toolkits/basemap/src/pycompat.h	2008年08月04日 18:38:38 UTC (rev 5970)
+++ trunk/toolkits/basemap/src/pycompat.h	2008年08月04日 18:40:19 UTC (rev 5971)
@@ -1,7 +0,0 @@
-#include "Python.h"
-
-/* Suggested by M. v. Loewis: http://mail.python.org/pipermail/python-dev/2006-March/062561.html */
-
-#if (PY_VERSION_HEX < 0x02050000)
-typedef int Py_ssize_t;
-#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <js...@us...> - 2008年08月08日 12:05:38
Revision: 6002
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6002&view=rev
Author: jswhit
Date: 2008年08月08日 12:05:35 +0000 (2008年8月08日)
Log Message:
-----------
handle geos major version number more gracefully.
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geoslib.c
 trunk/toolkits/basemap/src/_geoslib.pyx
Modified: trunk/toolkits/basemap/src/_geoslib.c
===================================================================
--- trunk/toolkits/basemap/src/_geoslib.c	2008年08月08日 11:52:59 UTC (rev 6001)
+++ trunk/toolkits/basemap/src/_geoslib.c	2008年08月08日 12:05:35 UTC (rev 6002)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.9.6.13.1 on Thu Aug 7 18:33:33 2008 */
+/* Generated by Cython 0.9.8 on Fri Aug 8 06:05:03 2008 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -6,6 +6,12 @@
 #ifndef PY_LONG_LONG
 #define PY_LONG_LONG LONG_LONG
 #endif
+#ifndef DL_EXPORT
+ #define DL_EXPORT(t) t
+#endif
+#if PY_VERSION_HEX < 0x02040000
+ #define METH_COEXIST 0
+#endif
 #if PY_VERSION_HEX < 0x02050000
 typedef int Py_ssize_t;
 #define PY_SSIZE_T_MAX INT_MAX
@@ -15,9 +21,69 @@
 #define PyNumber_Index(o) PyNumber_Int(o)
 #define PyIndex_Check(o) PyNumber_Check(o)
 #endif
-#if PY_VERSION_HEX < 0x02040000
- #define METH_COEXIST 0
+#if PY_VERSION_HEX < 0x02060000
+ #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
+ #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
+ #define Py_SIZE(ob) ((PyVarObject*)(ob))->ob_size)
+ #define PyVarObject_HEAD_INIT(type, size) \
+ PyObject_HEAD_INIT(type) size,
+
+ typedef struct {
+ void *buf;
+ Py_ssize_t len;
+ int readonly;
+ const char *format;
+ int ndim;
+ Py_ssize_t *shape;
+ Py_ssize_t *strides;
+ Py_ssize_t *suboffsets;
+ Py_ssize_t itemsize;
+ void *internal;
+ } Py_buffer;
+
+ #define PyBUF_SIMPLE 0
+ #define PyBUF_WRITABLE 0x0001
+ #define PyBUF_LOCK 0x0002
+ #define PyBUF_FORMAT 0x0004
+ #define PyBUF_ND 0x0008
+ #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
+ #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
+ #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
+ #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
+ #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
 #endif
+#if PY_MAJOR_VERSION < 3
+ #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
+#else
+ #define __Pyx_BUILTIN_MODULE_NAME "builtins"
+#endif
+#if PY_MAJOR_VERSION >= 3
+ #define Py_TPFLAGS_CHECKTYPES 0
+ #define Py_TPFLAGS_HAVE_INDEX 0
+#endif
+#if PY_MAJOR_VERSION >= 3
+ #define PyBaseString_Type PyUnicode_Type
+ #define PyString_Type PyBytes_Type
+ #define PyInt_Type PyLong_Type
+ #define PyInt_Check(op) PyLong_Check(op)
+ #define PyInt_CheckExact(op) PyLong_CheckExact(op)
+ #define PyInt_FromString PyLong_FromString
+ #define PyInt_FromUnicode PyLong_FromUnicode
+ #define PyInt_FromLong PyLong_FromLong
+ #define PyInt_FromSize_t PyLong_FromSize_t
+ #define PyInt_FromSsize_t PyLong_FromSsize_t
+ #define PyInt_AsLong PyLong_AsLong
+ #define PyInt_AS_LONG PyLong_AS_LONG
+ #define PyInt_AsSsize_t PyLong_AsSsize_t
+ #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
+ #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
+ #define PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
+#else
+ #define PyBytes_Type PyString_Type
+#endif
+#if PY_MAJOR_VERSION >= 3
+ #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
+#endif
 #ifndef __stdcall
 #define __stdcall
 #endif
@@ -30,6 +96,7 @@
 #define __PYX_EXTERN_C extern
 #endif
 #include <math.h>
+#define __PYX_HAVE_API___geoslib
 #include "numpy/arrayobject.h"
 #include "geos_c.h"
 
@@ -42,8 +109,7 @@
 #define INLINE 
 #endif
 
-typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/
-typedef struct {PyObject **p; char *s; long n; int is_unicode;} __Pyx_StringTabEntry; /*proto*/
+typedef struct {PyObject **p; char *s; long n; char is_unicode; char intern; char is_identifier;} __Pyx_StringTabEntry; /*proto*/
 
 
 
@@ -52,6 +118,14 @@
 
 /* Type Conversion Predeclarations */
 
+#if PY_MAJOR_VERSION < 3
+#define __Pyx_PyBytes_FromString PyString_FromString
+#define __Pyx_PyBytes_AsString PyString_AsString
+#else
+#define __Pyx_PyBytes_FromString PyBytes_FromString
+#define __Pyx_PyBytes_AsString PyBytes_AsString
+#endif
+
 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
 static INLINE int __Pyx_PyObject_IsTrue(PyObject* x);
 static INLINE PY_LONG_LONG __pyx_PyInt_AsLongLong(PyObject* x);
@@ -91,11 +165,11 @@
 static PyObject *__pyx_empty_tuple;
 static int __pyx_lineno;
 static int __pyx_clineno = 0;
-static char * __pyx_cfilenm= __FILE__;
-static char *__pyx_filename;
-static char **__pyx_f;
+static const char * __pyx_cfilenm= __FILE__;
+static const char *__pyx_filename;
+static const char **__pyx_f;
 
-static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, char *name); /*proto*/
+static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, char *name, int exact); /*proto*/
 
 static INLINE void __Pyx_RaiseArgtupleTooLong(Py_ssize_t num_expected, Py_ssize_t num_found); /*proto*/
 
@@ -105,30 +179,59 @@
 
 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
 
-static void __Pyx_WriteUnraisable(char *name); /*proto*/
+static void __Pyx_WriteUnraisable(const char *name); /*proto*/
 
+static INLINE PyObject* __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
+ if (likely(PyList_CheckExact(L))) {
+ if (PyList_Append(L, x) < 0) return NULL;
+ Py_INCREF(Py_None);
+ return Py_None; // this is just to have an accurate signature
+ }
+ else {
+ return PyObject_CallMethod(L, "append", "(O)", x);
+ }
+}
+
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
 static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
 
-static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/
+static INLINE PyObject *__Pyx_GetItemInt(PyObject *o, Py_ssize_t i, int is_unsigned) {
+ PyObject *r;
+ if (PyList_CheckExact(o) && 0 <= i && i < PyList_GET_SIZE(o)) {
+ r = PyList_GET_ITEM(o, i);
+ Py_INCREF(r);
+ }
+ else if (PyTuple_CheckExact(o) && 0 <= i && i < PyTuple_GET_SIZE(o)) {
+ r = PyTuple_GET_ITEM(o, i);
+ Py_INCREF(r);
+ }
+ else if (Py_TYPE(o)->tp_as_sequence && Py_TYPE(o)->tp_as_sequence->sq_item && (likely(i >= 0) || !is_unsigned))
+ r = PySequence_GetItem(o, i);
+ else {
+ PyObject *j = (likely(i >= 0) || !is_unsigned) ? PyInt_FromLong(i) : PyLong_FromUnsignedLongLong((sizeof(unsigned long long) > sizeof(Py_ssize_t) ? (1ULL << (sizeof(Py_ssize_t)*8)) : 0) + i);
+ if (!j)
+ return 0;
+ r = PyObject_GetItem(o, j);
+ Py_DECREF(j);
+ }
+ return r;
+}
 
 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
 
-static int __Pyx_ExportFunction(char *n, void *f, char *s); /*proto*/
-
 static PyTypeObject *__Pyx_ImportType(char *module_name, char *class_name, long size); /*proto*/
 
 static PyObject *__Pyx_ImportModule(char *name); /*proto*/
 
-static void __Pyx_AddTraceback(char *funcname); /*proto*/
+static void __Pyx_AddTraceback(const char *funcname); /*proto*/
 
-/* Declarations */
+/* Type declarations */
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":128
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":129
 * initGEOS(notice_h, error_h)
 * 
- * cdef class BaseGeometry: # <<<<<<<<<<<<<< 
+ * cdef class BaseGeometry: # <<<<<<<<<<<<<<
 * cdef GEOSGeom *_geom
 * cdef unsigned int _npts
 */
@@ -140,11 +243,11 @@
 PyObject *boundary;
 };
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":253
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":257
 * return (self.__class__,(self.boundary,))
- * 
- * cdef class Polygon(BaseGeometry): # <<<<<<<<<<<<<< 
 * 
+ * cdef class Polygon(BaseGeometry): # <<<<<<<<<<<<<<
+ * 
 * def __init__(self, ndarray b):
 */
 
@@ -152,10 +255,10 @@
 struct __pyx_obj_8_geoslib_BaseGeometry __pyx_base;
 };
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":309
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":313
 * return area
 * 
- * cdef class LineString(BaseGeometry): # <<<<<<<<<<<<<< 
+ * cdef class LineString(BaseGeometry): # <<<<<<<<<<<<<<
 * def __init__(self, ndarray b):
 * cdef double dx, dy
 */
@@ -164,10 +267,10 @@
 struct __pyx_obj_8_geoslib_BaseGeometry __pyx_base;
 };
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":341
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":345
 * self.boundary = b
 * 
- * cdef class Point(BaseGeometry): # <<<<<<<<<<<<<< 
+ * cdef class Point(BaseGeometry): # <<<<<<<<<<<<<<
 * cdef public x,y
 * def __init__(self, b):
 */
@@ -177,7 +280,9 @@
 PyObject *x;
 PyObject *y;
 };
+/* Module declarations from numpy */
 
+/* Module declarations from _geoslib */
 
 static PyTypeObject *__pyx_ptype_8_geoslib_ndarray = 0;
 static PyTypeObject *__pyx_ptype_8_geoslib_BaseGeometry = 0;
@@ -192,41 +297,60 @@
 
 /* Implementation of _geoslib */
 
-static char __pyx_k_3[] = "0.1";
+static char __pyx_k_1[] = "0.1";
 
-static PyObject *__pyx_n_is_valid;
-static PyObject *__pyx_n_geom_type;
-static PyObject *__pyx_n_within;
-static PyObject *__pyx_n_simplify;
-static PyObject *__pyx_n_intersects;
-static PyObject *__pyx_n_intersection;
-static PyObject *__pyx_n_get_coords;
-static PyObject *__pyx_n___dealloc__;
-static PyObject *__pyx_n___reduce__;
-static PyObject *__pyx_n___init__;
-static PyObject *__pyx_n_area;
-static PyObject *__pyx_n_sys;
-static PyObject *__pyx_n_numpy;
-static PyObject *__pyx_n___version__;
-static PyObject *__pyx_n___geos_version__;
+static char __pyx_k_is_valid[] = "is_valid";
+static char __pyx_k_geom_type[] = "geom_type";
+static char __pyx_k_within[] = "within";
+static char __pyx_k_simplify[] = "simplify";
+static char __pyx_k_intersects[] = "intersects";
+static char __pyx_k_intersection[] = "intersection";
+static char __pyx_k_get_coords[] = "get_coords";
+static char __pyx_k___dealloc__[] = "__dealloc__";
+static char __pyx_k___reduce__[] = "__reduce__";
+static char __pyx_k___init__[] = "__init__";
+static char __pyx_k_area[] = "area";
+static char __pyx_k_sys[] = "sys";
+static char __pyx_k_numpy[] = "numpy";
+static char __pyx_k___version__[] = "__version__";
+static char __pyx_k___geos_version__[] = "__geos_version__";
 
-static PyObject *__pyx_k_3p;
+static PyObject *__pyx_kp_is_valid;
+static PyObject *__pyx_kp_geom_type;
+static PyObject *__pyx_kp_within;
+static PyObject *__pyx_kp_simplify;
+static PyObject *__pyx_kp_intersects;
+static PyObject *__pyx_kp_intersection;
+static PyObject *__pyx_kp_get_coords;
+static PyObject *__pyx_kp___dealloc__;
+static PyObject *__pyx_kp___reduce__;
+static PyObject *__pyx_kp___init__;
+static PyObject *__pyx_kp_area;
+static PyObject *__pyx_kp_sys;
+static PyObject *__pyx_kp_numpy;
+static PyObject *__pyx_kp___version__;
+static PyObject *__pyx_kp___geos_version__;
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":101
+static PyObject *__pyx_kp_1;
+
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":102
 * int GEOSCoordSeq_getSize(GEOSCoordSeq *s, unsigned int *size)
 * 
- * cdef void notice_h(char *fmt, char*msg): # <<<<<<<<<<<<<< 
+ * cdef void notice_h(char *fmt, char*msg): # <<<<<<<<<<<<<<
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg)
 */
 
-static PyObject *__pyx_n_stdout;
-static PyObject *__pyx_n_write;
+static char __pyx_k_stdout[] = "stdout";
+static char __pyx_k_write[] = "write";
 
-static PyObject *__pyx_k_4p;
+static PyObject *__pyx_kp_stdout;
+static PyObject *__pyx_kp_write;
 
-static char __pyx_k_4[] = "GEOS_NOTICE: %s\n";
+static PyObject *__pyx_kp_2;
 
+static char __pyx_k_2[] = "GEOS_NOTICE: %s\n";
+
 static void __pyx_f_8_geoslib_notice_h(char *__pyx_v_fmt, char *__pyx_v_msg) {
 PyObject *__pyx_v_format;
 PyObject *__pyx_v_message;
@@ -238,47 +362,47 @@
 __pyx_v_message = Py_None; Py_INCREF(Py_None);
 __pyx_v_warn_msg = Py_None; Py_INCREF(Py_None);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":102
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":103
 * 
 * cdef void notice_h(char *fmt, char*msg):
- * format = PyString_FromString(fmt) # <<<<<<<<<<<<<< 
+ * format = PyString_FromString(fmt) # <<<<<<<<<<<<<<
 * message = PyString_FromString(msg)
 * try:
 */
- __pyx_1 = PyString_FromString(__pyx_v_fmt); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyString_FromString(__pyx_v_fmt); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_format);
 __pyx_v_format = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":103
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":104
 * cdef void notice_h(char *fmt, char*msg):
 * format = PyString_FromString(fmt)
- * message = PyString_FromString(msg) # <<<<<<<<<<<<<< 
+ * message = PyString_FromString(msg) # <<<<<<<<<<<<<<
 * try:
 * warn_msg = format % message
 */
- __pyx_1 = PyString_FromString(__pyx_v_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyString_FromString(__pyx_v_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_message);
 __pyx_v_message = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":104
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":105
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg)
- * try: # <<<<<<<<<<<<<< 
+ * try: # <<<<<<<<<<<<<<
 * warn_msg = format % message
 * except:
 */
 /*try:*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":105
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":106
 * message = PyString_FromString(msg)
 * try:
- * warn_msg = format % message # <<<<<<<<<<<<<< 
+ * warn_msg = format % message # <<<<<<<<<<<<<<
 * except:
 * warn_msg = format
 */
- __pyx_1 = PyNumber_Remainder(__pyx_v_format, __pyx_v_message); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L2;}
+ __pyx_1 = PyNumber_Remainder(__pyx_v_format, __pyx_v_message); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L2;}
 Py_DECREF(__pyx_v_warn_msg);
 __pyx_v_warn_msg = __pyx_1;
 __pyx_1 = 0;
@@ -287,21 +411,21 @@
 __pyx_L2:;
 Py_XDECREF(__pyx_1); __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":106
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":107
 * try:
 * warn_msg = format % message
- * except: # <<<<<<<<<<<<<< 
+ * except: # <<<<<<<<<<<<<<
 * warn_msg = format
 * sys.stdout.write('GEOS_NOTICE: %s\n' % warn_msg)
 */
 /*except:*/ {
 __Pyx_AddTraceback("_geoslib.notice_h");
- if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":107
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":108
 * warn_msg = format % message
 * except:
- * warn_msg = format # <<<<<<<<<<<<<< 
+ * warn_msg = format # <<<<<<<<<<<<<<
 * sys.stdout.write('GEOS_NOTICE: %s\n' % warn_msg)
 * 
 */
@@ -315,25 +439,25 @@
 }
 __pyx_L3:;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":108
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":109
 * except:
 * warn_msg = format
- * sys.stdout.write('GEOS_NOTICE: %s\n' % warn_msg) # <<<<<<<<<<<<<< 
+ * sys.stdout.write('GEOS_NOTICE: %s\n' % warn_msg) # <<<<<<<<<<<<<<
 * 
 * cdef void error_h(char *fmt, char*msg):
 */
- __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_sys); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_stdout); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_sys); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_stdout); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_write); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_write); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_1 = PyNumber_Remainder(__pyx_k_4p, __pyx_v_warn_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyNumber_Remainder(__pyx_kp_2, __pyx_v_warn_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
 PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
 __pyx_1 = 0;
- __pyx_1 = PyObject_Call(__pyx_3, __pyx_2, NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
 Py_DECREF(__pyx_1); __pyx_1 = 0;
 
 goto __pyx_L0;
@@ -348,20 +472,22 @@
 Py_DECREF(__pyx_v_warn_msg);
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":110
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":111
 * sys.stdout.write('GEOS_NOTICE: %s\n' % warn_msg)
 * 
- * cdef void error_h(char *fmt, char*msg): # <<<<<<<<<<<<<< 
+ * cdef void error_h(char *fmt, char*msg): # <<<<<<<<<<<<<<
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg)
 */
 
-static PyObject *__pyx_n_stderr;
+static char __pyx_k_stderr[] = "stderr";
 
-static PyObject *__pyx_k_5p;
+static PyObject *__pyx_kp_stderr;
 
-static char __pyx_k_5[] = "GEOS_ERROR: %s\n";
+static PyObject *__pyx_kp_3;
 
+static char __pyx_k_3[] = "GEOS_ERROR: %s\n";
+
 static void __pyx_f_8_geoslib_error_h(char *__pyx_v_fmt, char *__pyx_v_msg) {
 PyObject *__pyx_v_format;
 PyObject *__pyx_v_message;
@@ -373,47 +499,47 @@
 __pyx_v_message = Py_None; Py_INCREF(Py_None);
 __pyx_v_warn_msg = Py_None; Py_INCREF(Py_None);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":111
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":112
 * 
 * cdef void error_h(char *fmt, char*msg):
- * format = PyString_FromString(fmt) # <<<<<<<<<<<<<< 
+ * format = PyString_FromString(fmt) # <<<<<<<<<<<<<<
 * message = PyString_FromString(msg)
 * try:
 */
- __pyx_1 = PyString_FromString(__pyx_v_fmt); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyString_FromString(__pyx_v_fmt); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_format);
 __pyx_v_format = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":112
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":113
 * cdef void error_h(char *fmt, char*msg):
 * format = PyString_FromString(fmt)
- * message = PyString_FromString(msg) # <<<<<<<<<<<<<< 
+ * message = PyString_FromString(msg) # <<<<<<<<<<<<<<
 * try:
 * warn_msg = format % message
 */
- __pyx_1 = PyString_FromString(__pyx_v_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyString_FromString(__pyx_v_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_message);
 __pyx_v_message = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":113
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":114
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg)
- * try: # <<<<<<<<<<<<<< 
+ * try: # <<<<<<<<<<<<<<
 * warn_msg = format % message
 * except:
 */
 /*try:*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":114
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":115
 * message = PyString_FromString(msg)
 * try:
- * warn_msg = format % message # <<<<<<<<<<<<<< 
+ * warn_msg = format % message # <<<<<<<<<<<<<<
 * except:
 * warn_msg = format
 */
- __pyx_1 = PyNumber_Remainder(__pyx_v_format, __pyx_v_message); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L2;}
+ __pyx_1 = PyNumber_Remainder(__pyx_v_format, __pyx_v_message); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L2;}
 Py_DECREF(__pyx_v_warn_msg);
 __pyx_v_warn_msg = __pyx_1;
 __pyx_1 = 0;
@@ -422,21 +548,21 @@
 __pyx_L2:;
 Py_XDECREF(__pyx_1); __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":115
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":116
 * try:
 * warn_msg = format % message
- * except: # <<<<<<<<<<<<<< 
+ * except: # <<<<<<<<<<<<<<
 * warn_msg = format
 * sys.stderr.write('GEOS_ERROR: %s\n' % warn_msg)
 */
 /*except:*/ {
 __Pyx_AddTraceback("_geoslib.error_h");
- if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":116
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":117
 * warn_msg = format % message
 * except:
- * warn_msg = format # <<<<<<<<<<<<<< 
+ * warn_msg = format # <<<<<<<<<<<<<<
 * sys.stderr.write('GEOS_ERROR: %s\n' % warn_msg)
 * 
 */
@@ -450,25 +576,25 @@
 }
 __pyx_L3:;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":117
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":118
 * except:
 * warn_msg = format
- * sys.stderr.write('GEOS_ERROR: %s\n' % warn_msg) # <<<<<<<<<<<<<< 
+ * sys.stderr.write('GEOS_ERROR: %s\n' % warn_msg) # <<<<<<<<<<<<<<
 * 
 * # check library version
 */
- __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_sys); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_stderr); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_sys); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_stderr); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_write); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_kp_write); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_2); __pyx_2 = 0;
- __pyx_1 = PyNumber_Remainder(__pyx_k_5p, __pyx_v_warn_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyNumber_Remainder(__pyx_kp_3, __pyx_v_warn_msg); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1;}
 PyTuple_SET_ITEM(__pyx_2, 0, __pyx_1);
 __pyx_1 = 0;
- __pyx_1 = PyObject_Call(__pyx_3, __pyx_2, NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_2); __pyx_2 = 0;
+ Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
 Py_DECREF(__pyx_1); __pyx_1 = 0;
 
 goto __pyx_L0;
@@ -483,10 +609,10 @@
 Py_DECREF(__pyx_v_warn_msg);
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":120
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":121
 * 
 * # check library version
- * cdef geos_version(): # <<<<<<<<<<<<<< 
+ * cdef geos_version(): # <<<<<<<<<<<<<<
 * return PyString_FromString(GEOSversion())
 * __geos_version__ = geos_version() # module variable.
 */
@@ -495,14 +621,14 @@
 PyObject *__pyx_r;
 PyObject *__pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":121
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":122
 * # check library version
 * cdef geos_version():
- * return PyString_FromString(GEOSversion()) # <<<<<<<<<<<<<< 
+ * return PyString_FromString(GEOSversion()) # <<<<<<<<<<<<<<
 * __geos_version__ = geos_version() # module variable.
 * #if __geos_version__ != "2.2.3-CAPI-1.1.1":
 */
- __pyx_1 = PyString_FromString(GEOSversion()); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyString_FromString(GEOSversion()); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1;}
 __pyx_r = __pyx_1;
 __pyx_1 = 0;
 goto __pyx_L0;
@@ -517,10 +643,10 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":133
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":134
 * cdef public object boundary
 * 
- * def is_valid(self): # <<<<<<<<<<<<<< 
+ * def is_valid(self): # <<<<<<<<<<<<<<
 * cdef char valid
 * valid = GEOSisValid(self._geom)
 */
@@ -531,29 +657,29 @@
 PyObject *__pyx_r;
 char __pyx_1;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":135
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":136
 * def is_valid(self):
 * cdef char valid
- * valid = GEOSisValid(self._geom) # <<<<<<<<<<<<<< 
+ * valid = GEOSisValid(self._geom) # <<<<<<<<<<<<<<
 * if valid:
 * return True
 */
 __pyx_v_valid = GEOSisValid(((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":136
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":137
 * cdef char valid
 * valid = GEOSisValid(self._geom)
- * if valid: # <<<<<<<<<<<<<< 
+ * if valid: # <<<<<<<<<<<<<<
 * return True
 * else:
 */
 __pyx_1 = __pyx_v_valid;
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":137
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":138
 * valid = GEOSisValid(self._geom)
 * if valid:
- * return True # <<<<<<<<<<<<<< 
+ * return True # <<<<<<<<<<<<<<
 * else:
 * return False
 */
@@ -564,10 +690,10 @@
 }
 /*else*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":139
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":140
 * return True
 * else:
- * return False # <<<<<<<<<<<<<< 
+ * return False # <<<<<<<<<<<<<<
 * 
 * def geom_type(self):
 */
@@ -582,10 +708,10 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":141
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":142
 * return False
 * 
- * def geom_type(self): # <<<<<<<<<<<<<< 
+ * def geom_type(self): # <<<<<<<<<<<<<<
 * return PyString_FromString(GEOSGeomType(self._geom))
 * 
 */
@@ -595,14 +721,14 @@
 PyObject *__pyx_r;
 PyObject *__pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":142
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":143
 * 
 * def geom_type(self):
- * return PyString_FromString(GEOSGeomType(self._geom)) # <<<<<<<<<<<<<< 
+ * return PyString_FromString(GEOSGeomType(self._geom)) # <<<<<<<<<<<<<<
 * 
 * def within(self, BaseGeometry geom):
 */
- __pyx_1 = PyString_FromString(GEOSGeomType(((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyString_FromString(GEOSGeomType(((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1;}
 __pyx_r = __pyx_1;
 __pyx_1 = 0;
 goto __pyx_L0;
@@ -617,10 +743,10 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":144
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":145
 * return PyString_FromString(GEOSGeomType(self._geom))
 * 
- * def within(self, BaseGeometry geom): # <<<<<<<<<<<<<< 
+ * def within(self, BaseGeometry geom): # <<<<<<<<<<<<<<
 * cdef GEOSGeom *g1, *g2
 * cdef char answer
 */
@@ -632,49 +758,49 @@
 char __pyx_v_answer;
 PyObject *__pyx_r;
 char __pyx_1;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_8_geoslib_BaseGeometry, 1, "geom"))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_8_geoslib_BaseGeometry, 1, "geom", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":147
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":148
 * cdef GEOSGeom *g1, *g2
 * cdef char answer
- * g1 = self._geom # <<<<<<<<<<<<<< 
+ * g1 = self._geom # <<<<<<<<<<<<<<
 * g2 = geom._geom
 * answer = GEOSWithin(g1, g2)
 */
 __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":148
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":149
 * cdef char answer
 * g1 = self._geom
- * g2 = geom._geom # <<<<<<<<<<<<<< 
+ * g2 = geom._geom # <<<<<<<<<<<<<<
 * answer = GEOSWithin(g1, g2)
 * if answer:
 */
 __pyx_v_g2 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_geom)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":149
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":150
 * g1 = self._geom
 * g2 = geom._geom
- * answer = GEOSWithin(g1, g2) # <<<<<<<<<<<<<< 
+ * answer = GEOSWithin(g1, g2) # <<<<<<<<<<<<<<
 * if answer:
 * return True
 */
 __pyx_v_answer = GEOSWithin(__pyx_v_g1, __pyx_v_g2);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":150
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":151
 * g2 = geom._geom
 * answer = GEOSWithin(g1, g2)
- * if answer: # <<<<<<<<<<<<<< 
+ * if answer: # <<<<<<<<<<<<<<
 * return True
 * else:
 */
 __pyx_1 = __pyx_v_answer;
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":151
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":152
 * answer = GEOSWithin(g1, g2)
 * if answer:
- * return True # <<<<<<<<<<<<<< 
+ * return True # <<<<<<<<<<<<<<
 * else:
 * return False
 */
@@ -685,10 +811,10 @@
 }
 /*else*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":153
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":154
 * return True
 * else:
- * return False # <<<<<<<<<<<<<< 
+ * return False # <<<<<<<<<<<<<<
 * 
 * def simplify(self, tol):
 */
@@ -707,24 +833,26 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":155
+/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":156
 * return False
 * 
- * def simplify(self, tol): # <<<<<<<<<<<<<< 
+ * def simplify(self, tol): # <<<<<<<<<<<<<<
 * cdef GEOSGeom *g1, *g3, *gout
 * cdef double tolerance
 */
 
-static PyObject *__pyx_n_append;
-static PyObject *__pyx_n_NotImplementedError;
+static char __pyx_k_append[] = "append";
+static char __pyx_k_NotImplementedError[] = "NotImplementedError";
 
-static PyObject *__pyx_k_6p;
+static PyObject *__pyx_kp_append;
+static PyObject *__pyx_kp_NotImplementedError;
 
+static PyObject *__pyx_kp_4;
+
 static PyObject *__pyx_builtin_NotImplementedError;
 
-static char __pyx_k_6[] = "intersections of type '%s' not yet implemented";
+static char __pyx_k_4[] = "intersections of type '%s' not yet implemented";
 
-#if GEOS_VERSION_MAJOR > 2
 static PyObject *__pyx_pf_8_geoslib_12BaseGeometry_simplify(PyObject *__pyx_v_self, PyObject *__pyx_v_tol); /*proto*/
 static PyObject *__pyx_pf_8_geoslib_12BaseGeometry_simplify(PyObject *__pyx_v_self, PyObject *__pyx_v_tol) {
 GEOSGeom *__pyx_v_g1;
@@ -739,398 +867,409 @@
 PyObject *__pyx_v_pout;
 PyObject *__pyx_v_type;
 PyObject *__pyx_r;
- double __pyx_1;
- int __pyx_2;
+ int __pyx_1;
+ double __pyx_2;
 PyObject *__pyx_3 = 0;
 PyObject *__pyx_4 = 0;
- PyObject *__pyx_5 = 0;
 __pyx_v_b = Py_None; Py_INCREF(Py_None);
 __pyx_v_p = Py_None; Py_INCREF(Py_None);
 __pyx_v_pout = Py_None; Py_INCREF(Py_None);
 __pyx_v_type = Py_None; Py_INCREF(Py_None);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":159
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":160
 * cdef double tolerance
 * cdef int numgeoms, i, typeid
- * tolerance = tol # <<<<<<<<<<<<<< 
- * g1 = self._geom
- * g3 = GEOSSimplify(g1, tolerance)
+ * g1 = self._geom # <<<<<<<<<<<<<<
+ * if GEOS_VERSION_MAJOR > 2:
+ * tolerance = tol
 */
- __pyx_1 = __pyx_PyFloat_AsDouble(__pyx_v_tol); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_v_tolerance = __pyx_1;
+ __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":160
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":161
 * cdef int numgeoms, i, typeid
- * tolerance = tol
- * g1 = self._geom # <<<<<<<<<<<<<< 
- * g3 = GEOSSimplify(g1, tolerance)
- * typeid = GEOSGeomTypeId(g3)
+ * g1 = self._geom
+ * if GEOS_VERSION_MAJOR > 2: # <<<<<<<<<<<<<<
+ * tolerance = tol
+ * g3 = GEOSSimplify(g1, tolerance)
 */
- __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
+ __pyx_1 = (GEOS_VERSION_MAJOR > 2);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":161
- * tolerance = tol
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":162
 * g1 = self._geom
- * g3 = GEOSSimplify(g1, tolerance) # <<<<<<<<<<<<<< 
+ * if GEOS_VERSION_MAJOR > 2:
+ * tolerance = tol # <<<<<<<<<<<<<<
+ * g3 = GEOSSimplify(g1, tolerance)
+ * else:
+ */
+ __pyx_2 = __pyx_PyFloat_AsDouble(__pyx_v_tol); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_v_tolerance = __pyx_2;
+
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":163
+ * if GEOS_VERSION_MAJOR > 2:
+ * tolerance = tol
+ * g3 = GEOSSimplify(g1, tolerance) # <<<<<<<<<<<<<<
+ * else:
+ * g3 = g1
+ */
+ __pyx_v_g3 = GEOSSimplify(__pyx_v_g1, __pyx_v_tolerance);
+ goto __pyx_L4;
+ }
+ /*else*/ {
+
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":165
+ * g3 = GEOSSimplify(g1, tolerance)
+ * else:
+ * g3 = g1 # <<<<<<<<<<<<<<
 * typeid = GEOSGeomTypeId(g3)
 * if typeid == GEOS_POLYGON:
 */
- __pyx_v_g3 = GEOSSimplify(__pyx_v_g1, __pyx_v_tolerance);
+ __pyx_v_g3 = __pyx_v_g1;
+ }
+ __pyx_L4:;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":162
- * g1 = self._geom
- * g3 = GEOSSimplify(g1, tolerance)
- * typeid = GEOSGeomTypeId(g3) # <<<<<<<<<<<<<< 
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":166
+ * else:
+ * g3 = g1
+ * typeid = GEOSGeomTypeId(g3) # <<<<<<<<<<<<<<
 * if typeid == GEOS_POLYGON:
 * b = _get_coords(g3)
 */
 __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":163
- * g3 = GEOSSimplify(g1, tolerance)
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":167
+ * g3 = g1
 * typeid = GEOSGeomTypeId(g3)
- * if typeid == GEOS_POLYGON: # <<<<<<<<<<<<<< 
+ * if typeid == GEOS_POLYGON: # <<<<<<<<<<<<<<
 * b = _get_coords(g3)
 * p = Polygon(b)
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_POLYGON);
- if (__pyx_2) {
+ __pyx_1 = (__pyx_v_typeid == GEOS_POLYGON);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":164
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":168
 * typeid = GEOSGeomTypeId(g3)
 * if typeid == GEOS_POLYGON:
- * b = _get_coords(g3) # <<<<<<<<<<<<<< 
+ * b = _get_coords(g3) # <<<<<<<<<<<<<<
 * p = Polygon(b)
 * pout = [p]
 */
- __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_b);
 __pyx_v_b = __pyx_3;
 __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":165
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":169
 * if typeid == GEOS_POLYGON:
 * b = _get_coords(g3)
- * p = Polygon(b) # <<<<<<<<<<<<<< 
+ * p = Polygon(b) # <<<<<<<<<<<<<<
 * pout = [p]
 * elif typeid == GEOS_LINESTRING:
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_b);
 PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_b);
- __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), __pyx_3, NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
 Py_DECREF(__pyx_v_p);
 __pyx_v_p = __pyx_4;
 __pyx_4 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":166
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":170
 * b = _get_coords(g3)
 * p = Polygon(b)
- * pout = [p] # <<<<<<<<<<<<<< 
+ * pout = [p] # <<<<<<<<<<<<<<
 * elif typeid == GEOS_LINESTRING:
 * b = _get_coords(g3)
 */
- __pyx_3 = PyList_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyList_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_p);
 PyList_SET_ITEM(__pyx_3, 0, __pyx_v_p);
 Py_DECREF(__pyx_v_pout);
- __pyx_v_pout = __pyx_3;
+ __pyx_v_pout = ((PyObject *)__pyx_3);
 __pyx_3 = 0;
- goto __pyx_L4;
+ goto __pyx_L5;
 }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":167
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":171
 * p = Polygon(b)
 * pout = [p]
- * elif typeid == GEOS_LINESTRING: # <<<<<<<<<<<<<< 
+ * elif typeid == GEOS_LINESTRING: # <<<<<<<<<<<<<<
 * b = _get_coords(g3)
 * p = LineString(b)
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_LINESTRING);
- if (__pyx_2) {
+ __pyx_1 = (__pyx_v_typeid == GEOS_LINESTRING);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":168
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":172
 * pout = [p]
 * elif typeid == GEOS_LINESTRING:
- * b = _get_coords(g3) # <<<<<<<<<<<<<< 
+ * b = _get_coords(g3) # <<<<<<<<<<<<<<
 * p = LineString(b)
 * pout = [p]
 */
- __pyx_4 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_4 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_b);
 __pyx_v_b = __pyx_4;
 __pyx_4 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":169
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":173
 * elif typeid == GEOS_LINESTRING:
 * b = _get_coords(g3)
- * p = LineString(b) # <<<<<<<<<<<<<< 
+ * p = LineString(b) # <<<<<<<<<<<<<<
 * pout = [p]
 * elif typeid == GEOS_MULTIPOLYGON:
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_b);
 PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_b);
- __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), __pyx_3, NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
 Py_DECREF(__pyx_v_p);
 __pyx_v_p = __pyx_4;
 __pyx_4 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":170
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":174
 * b = _get_coords(g3)
 * p = LineString(b)
- * pout = [p] # <<<<<<<<<<<<<< 
+ * pout = [p] # <<<<<<<<<<<<<<
 * elif typeid == GEOS_MULTIPOLYGON:
 * numgeoms = GEOSGetNumGeometries(g3)
 */
- __pyx_3 = PyList_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyList_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_p);
 PyList_SET_ITEM(__pyx_3, 0, __pyx_v_p);
 Py_DECREF(__pyx_v_pout);
- __pyx_v_pout = __pyx_3;
+ __pyx_v_pout = ((PyObject *)__pyx_3);
 __pyx_3 = 0;
- goto __pyx_L4;
+ goto __pyx_L5;
 }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":171
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":175
 * p = LineString(b)
 * pout = [p]
- * elif typeid == GEOS_MULTIPOLYGON: # <<<<<<<<<<<<<< 
+ * elif typeid == GEOS_MULTIPOLYGON: # <<<<<<<<<<<<<<
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = []
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_MULTIPOLYGON);
- if (__pyx_2) {
+ __pyx_1 = (__pyx_v_typeid == GEOS_MULTIPOLYGON);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":172
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":176
 * pout = [p]
 * elif typeid == GEOS_MULTIPOLYGON:
- * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<< 
+ * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
 * pout = []
 * for i from 0 <= i < numgeoms:
 */
 __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":173
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":177
 * elif typeid == GEOS_MULTIPOLYGON:
 * numgeoms = GEOSGetNumGeometries(g3)
- * pout = [] # <<<<<<<<<<<<<< 
+ * pout = [] # <<<<<<<<<<<<<<
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i)
 */
- __pyx_4 = PyList_New(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_4 = PyList_New(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_pout);
- __pyx_v_pout = __pyx_4;
+ __pyx_v_pout = ((PyObject *)__pyx_4);
 __pyx_4 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":174
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":178
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = []
- * for i from 0 <= i < numgeoms: # <<<<<<<<<<<<<< 
+ * for i from 0 <= i < numgeoms: # <<<<<<<<<<<<<<
 * gout = GEOSGetGeometryN(g3, i)
 * b = _get_coords(gout)
 */
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_numgeoms; __pyx_v_i++) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":175
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":179
 * pout = []
 * for i from 0 <= i < numgeoms:
- * gout = GEOSGetGeometryN(g3, i) # <<<<<<<<<<<<<< 
+ * gout = GEOSGetGeometryN(g3, i) # <<<<<<<<<<<<<<
 * b = _get_coords(gout)
 * p = Polygon(b)
 */
 __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, __pyx_v_i);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":176
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":180
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i)
- * b = _get_coords(gout) # <<<<<<<<<<<<<< 
+ * b = _get_coords(gout) # <<<<<<<<<<<<<<
 * p = Polygon(b)
 * pout.append(p)
 */
- __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_b);
 __pyx_v_b = __pyx_3;
 __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":177
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":181
 * gout = GEOSGetGeometryN(g3, i)
 * b = _get_coords(gout)
- * p = Polygon(b) # <<<<<<<<<<<<<< 
+ * p = Polygon(b) # <<<<<<<<<<<<<<
 * pout.append(p)
 * elif typeid == GEOS_MULTILINESTRING:
 */
- __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_b);
 PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_b);
- __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), __pyx_4, NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
 Py_DECREF(__pyx_v_p);
 __pyx_v_p = __pyx_3;
 __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":178
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":182
 * b = _get_coords(gout)
 * p = Polygon(b)
- * pout.append(p) # <<<<<<<<<<<<<< 
+ * pout.append(p) # <<<<<<<<<<<<<<
 * elif typeid == GEOS_MULTILINESTRING:
 * numgeoms = GEOSGetNumGeometries(g3)
 */
- __pyx_4 = PyObject_GetAttr(__pyx_v_pout, __pyx_n_append); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_v_p);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_p);
- __pyx_5 = PyObject_Call(__pyx_4, __pyx_3, NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_4 = __Pyx_PyObject_Append(__pyx_v_pout, __pyx_v_p); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_5); __pyx_5 = 0;
 }
- goto __pyx_L4;
+ goto __pyx_L5;
 }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":179
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":183
 * p = Polygon(b)
 * pout.append(p)
- * elif typeid == GEOS_MULTILINESTRING: # <<<<<<<<<<<<<< 
+ * elif typeid == GEOS_MULTILINESTRING: # <<<<<<<<<<<<<<
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = []
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_MULTILINESTRING);
- if (__pyx_2) {
+ __pyx_1 = (__pyx_v_typeid == GEOS_MULTILINESTRING);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":180
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":184
 * pout.append(p)
 * elif typeid == GEOS_MULTILINESTRING:
- * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<< 
+ * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
 * pout = []
 * for i from 0 <= i < numgeoms:
 */
 __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":181
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":185
 * elif typeid == GEOS_MULTILINESTRING:
 * numgeoms = GEOSGetNumGeometries(g3)
- * pout = [] # <<<<<<<<<<<<<< 
+ * pout = [] # <<<<<<<<<<<<<<
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i)
 */
- __pyx_4 = PyList_New(0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyList_New(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_pout);
- __pyx_v_pout = __pyx_4;
- __pyx_4 = 0;
+ __pyx_v_pout = ((PyObject *)__pyx_3);
+ __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":182
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":186
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = []
- * for i from 0 <= i < numgeoms: # <<<<<<<<<<<<<< 
+ * for i from 0 <= i < numgeoms: # <<<<<<<<<<<<<<
 * gout = GEOSGetGeometryN(g3, i)
 * b = _get_coords(gout)
 */
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_numgeoms; __pyx_v_i++) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":183
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":187
 * pout = []
 * for i from 0 <= i < numgeoms:
- * gout = GEOSGetGeometryN(g3, i) # <<<<<<<<<<<<<< 
+ * gout = GEOSGetGeometryN(g3, i) # <<<<<<<<<<<<<<
 * b = _get_coords(gout)
 * p = LineString(b)
 */
 __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, __pyx_v_i);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":184
+ /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":188
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i)
- * b = _get_coords(gout) # <<<<<<<<<<<<<< 
+ * b = _get_coords(gout) # <<<<<<<<<<<<<<
 * p = LineString(b)
 * pout.append(p)
 */
- __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_4 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_b);
- __pyx_v_b = __pyx_3;
- __pyx_3 = 0;
+ __pyx_v_b = __pyx_4;
+ __pyx_4 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/...
 
[truncated message content]
From: <js...@us...> - 2008年08月11日 15:07:55
Revision: 6020
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6020&view=rev
Author: jswhit
Date: 2008年08月11日 15:07:49 +0000 (2008年8月11日)
Log Message:
-----------
previous commit broke geos 2 compatibility
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geoslib.c
 trunk/toolkits/basemap/src/_geoslib.pyx
Modified: trunk/toolkits/basemap/src/_geoslib.c
===================================================================
--- trunk/toolkits/basemap/src/_geoslib.c	2008年08月11日 13:01:47 UTC (rev 6019)
+++ trunk/toolkits/basemap/src/_geoslib.c	2008年08月11日 15:07:49 UTC (rev 6020)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.9.8 on Sat Aug 9 10:17:12 2008 */
+/* Generated by Cython 0.9.8 on Mon Aug 11 09:07:15 2008 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -228,7 +228,7 @@
 
 /* Type declarations */
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":131
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":131
 * initGEOS(notice_h, error_h)
 * 
 * cdef class BaseGeometry: # <<<<<<<<<<<<<<
@@ -243,7 +243,7 @@
 PyObject *boundary;
 };
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":249
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":250
 * return (self.__class__,(self.boundary,))
 * 
 * cdef class Polygon(BaseGeometry): # <<<<<<<<<<<<<<
@@ -255,7 +255,7 @@
 struct __pyx_obj_8_geoslib_BaseGeometry __pyx_base;
 };
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":305
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":306
 * return area
 * 
 * cdef class LineString(BaseGeometry): # <<<<<<<<<<<<<<
@@ -267,7 +267,7 @@
 struct __pyx_obj_8_geoslib_BaseGeometry __pyx_base;
 };
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":337
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":338
 * self.boundary = b
 * 
 * cdef class Point(BaseGeometry): # <<<<<<<<<<<<<<
@@ -335,7 +335,7 @@
 
 static PyObject *__pyx_kp_1;
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":102
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":102
 * int GEOSCoordSeq_getSize(GEOSCoordSeq *s, unsigned int *size)
 * 
 * cdef void notice_h(char *fmt, char*msg): # <<<<<<<<<<<<<<
@@ -364,7 +364,7 @@
 __pyx_v_message = Py_None; Py_INCREF(Py_None);
 __pyx_v_warn_msg = Py_None; Py_INCREF(Py_None);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":103
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":103
 * 
 * cdef void notice_h(char *fmt, char*msg):
 * format = PyString_FromString(fmt) # <<<<<<<<<<<<<<
@@ -376,7 +376,7 @@
 __pyx_v_format = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":104
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":104
 * cdef void notice_h(char *fmt, char*msg):
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg) # <<<<<<<<<<<<<<
@@ -388,7 +388,7 @@
 __pyx_v_message = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":105
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":105
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg)
 * try: # <<<<<<<<<<<<<<
@@ -397,7 +397,7 @@
 */
 /*try:*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":106
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":106
 * message = PyString_FromString(msg)
 * try:
 * warn_msg = format % message # <<<<<<<<<<<<<<
@@ -413,7 +413,7 @@
 __pyx_L2:;
 Py_XDECREF(__pyx_1); __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":107
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":107
 * try:
 * warn_msg = format % message
 * except: # <<<<<<<<<<<<<<
@@ -424,7 +424,7 @@
 __Pyx_AddTraceback("_geoslib.notice_h");
 if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":108
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":108
 * warn_msg = format % message
 * except:
 * warn_msg = format # <<<<<<<<<<<<<<
@@ -441,7 +441,7 @@
 }
 __pyx_L3:;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":109
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":109
 * except:
 * warn_msg = format
 * sys.stdout.write('GEOS_NOTICE: %s\n' % warn_msg) # <<<<<<<<<<<<<<
@@ -474,7 +474,7 @@
 Py_DECREF(__pyx_v_warn_msg);
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":111
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":111
 * sys.stdout.write('GEOS_NOTICE: %s\n' % warn_msg)
 * 
 * cdef void error_h(char *fmt, char*msg): # <<<<<<<<<<<<<<
@@ -501,7 +501,7 @@
 __pyx_v_message = Py_None; Py_INCREF(Py_None);
 __pyx_v_warn_msg = Py_None; Py_INCREF(Py_None);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":112
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":112
 * 
 * cdef void error_h(char *fmt, char*msg):
 * format = PyString_FromString(fmt) # <<<<<<<<<<<<<<
@@ -513,7 +513,7 @@
 __pyx_v_format = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":113
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":113
 * cdef void error_h(char *fmt, char*msg):
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg) # <<<<<<<<<<<<<<
@@ -525,7 +525,7 @@
 __pyx_v_message = __pyx_1;
 __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":114
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":114
 * format = PyString_FromString(fmt)
 * message = PyString_FromString(msg)
 * try: # <<<<<<<<<<<<<<
@@ -534,7 +534,7 @@
 */
 /*try:*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":115
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":115
 * message = PyString_FromString(msg)
 * try:
 * warn_msg = format % message # <<<<<<<<<<<<<<
@@ -550,7 +550,7 @@
 __pyx_L2:;
 Py_XDECREF(__pyx_1); __pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":116
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":116
 * try:
 * warn_msg = format % message
 * except: # <<<<<<<<<<<<<<
@@ -561,7 +561,7 @@
 __Pyx_AddTraceback("_geoslib.error_h");
 if (__Pyx_GetException(&__pyx_1, &__pyx_2, &__pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":117
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":117
 * warn_msg = format % message
 * except:
 * warn_msg = format # <<<<<<<<<<<<<<
@@ -578,7 +578,7 @@
 }
 __pyx_L3:;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":118
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":118
 * except:
 * warn_msg = format
 * sys.stderr.write('GEOS_ERROR: %s\n' % warn_msg) # <<<<<<<<<<<<<<
@@ -611,7 +611,7 @@
 Py_DECREF(__pyx_v_warn_msg);
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":121
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":121
 * 
 * # check library version
 * cdef geos_version(): # <<<<<<<<<<<<<<
@@ -623,7 +623,7 @@
 PyObject *__pyx_r;
 PyObject *__pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":122
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":122
 * # check library version
 * cdef geos_version():
 * return PyString_FromString(GEOSversion()) # <<<<<<<<<<<<<<
@@ -645,7 +645,7 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":136
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":136
 * cdef public object boundary
 * 
 * def is_valid(self): # <<<<<<<<<<<<<<
@@ -659,7 +659,7 @@
 PyObject *__pyx_r;
 char __pyx_1;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":138
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":138
 * def is_valid(self):
 * cdef char valid
 * valid = GEOSisValid(self._geom) # <<<<<<<<<<<<<<
@@ -668,7 +668,7 @@
 */
 __pyx_v_valid = GEOSisValid(((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":139
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":139
 * cdef char valid
 * valid = GEOSisValid(self._geom)
 * if valid: # <<<<<<<<<<<<<<
@@ -678,7 +678,7 @@
 __pyx_1 = __pyx_v_valid;
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":140
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":140
 * valid = GEOSisValid(self._geom)
 * if valid:
 * return True # <<<<<<<<<<<<<<
@@ -692,7 +692,7 @@
 }
 /*else*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":142
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":142
 * return True
 * else:
 * return False # <<<<<<<<<<<<<<
@@ -710,7 +710,7 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":144
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":144
 * return False
 * 
 * def geom_type(self): # <<<<<<<<<<<<<<
@@ -723,7 +723,7 @@
 PyObject *__pyx_r;
 PyObject *__pyx_1 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":145
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":145
 * 
 * def geom_type(self):
 * return PyString_FromString(GEOSGeomType(self._geom)) # <<<<<<<<<<<<<<
@@ -745,7 +745,7 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":147
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":147
 * return PyString_FromString(GEOSGeomType(self._geom))
 * 
 * def within(self, BaseGeometry geom): # <<<<<<<<<<<<<<
@@ -762,7 +762,7 @@
 char __pyx_1;
 if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_8_geoslib_BaseGeometry, 1, "geom", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":150
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":150
 * cdef GEOSGeom *g1, *g2
 * cdef char answer
 * g1 = self._geom # <<<<<<<<<<<<<<
@@ -771,7 +771,7 @@
 */
 __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":151
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":151
 * cdef char answer
 * g1 = self._geom
 * g2 = geom._geom # <<<<<<<<<<<<<<
@@ -780,7 +780,7 @@
 */
 __pyx_v_g2 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_geom)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":152
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":152
 * g1 = self._geom
 * g2 = geom._geom
 * answer = GEOSWithin(g1, g2) # <<<<<<<<<<<<<<
@@ -789,7 +789,7 @@
 */
 __pyx_v_answer = GEOSWithin(__pyx_v_g1, __pyx_v_g2);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":153
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":153
 * g2 = geom._geom
 * answer = GEOSWithin(g1, g2)
 * if answer: # <<<<<<<<<<<<<<
@@ -799,7 +799,7 @@
 __pyx_1 = __pyx_v_answer;
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":154
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":154
 * answer = GEOSWithin(g1, g2)
 * if answer:
 * return True # <<<<<<<<<<<<<<
@@ -813,7 +813,7 @@
 }
 /*else*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":156
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":156
 * return True
 * else:
 * return False # <<<<<<<<<<<<<<
@@ -835,7 +835,7 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":158
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":158
 * return False
 * 
 * def simplify(self, tol): # <<<<<<<<<<<<<<
@@ -865,298 +865,311 @@
 PyObject *__pyx_v_p;
 PyObject *__pyx_v_type;
 PyObject *__pyx_r;
- double __pyx_1;
- int __pyx_2;
+ int __pyx_1;
+ double __pyx_2;
 PyObject *__pyx_3 = 0;
 PyObject *__pyx_4 = 0;
 __pyx_v_b = Py_None; Py_INCREF(Py_None);
 __pyx_v_p = Py_None; Py_INCREF(Py_None);
 __pyx_v_type = Py_None; Py_INCREF(Py_None);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":162
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":162
 * cdef double tolerance
 * cdef int numgeoms, i, typeid
- * g1 = self._geom # <<<<<<<<<<<<<<
- * tolerance = tol
- * g3 = GEOSSimplify(g1,tolerance)
+ * if GEOS_VERSION_MAJOR > 2: # <<<<<<<<<<<<<<
+ * g1 = self._geom
+ * tolerance = tol
 */
- __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
+ __pyx_1 = (GEOS_VERSION_MAJOR > 2);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":163
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":163
 * cdef int numgeoms, i, typeid
- * g1 = self._geom
- * tolerance = tol # <<<<<<<<<<<<<<
- * g3 = GEOSSimplify(g1,tolerance)
- * typeid = GEOSGeomTypeId(g3)
+ * if GEOS_VERSION_MAJOR > 2:
+ * g1 = self._geom # <<<<<<<<<<<<<<
+ * tolerance = tol
+ * g3 = GEOSSimplify(g1,tolerance)
 */
- __pyx_1 = __pyx_PyFloat_AsDouble(__pyx_v_tol); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_v_tolerance = __pyx_1;
+ __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":164
- * g1 = self._geom
- * tolerance = tol
- * g3 = GEOSSimplify(g1,tolerance) # <<<<<<<<<<<<<<
- * typeid = GEOSGeomTypeId(g3)
- * if typeid == GEOS_POLYGON:
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":164
+ * if GEOS_VERSION_MAJOR > 2:
+ * g1 = self._geom
+ * tolerance = tol # <<<<<<<<<<<<<<
+ * g3 = GEOSSimplify(g1,tolerance)
+ * typeid = GEOSGeomTypeId(g3)
 */
- __pyx_v_g3 = GEOSSimplify(__pyx_v_g1, __pyx_v_tolerance);
+ __pyx_2 = __pyx_PyFloat_AsDouble(__pyx_v_tol); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_v_tolerance = __pyx_2;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":165
- * tolerance = tol
- * g3 = GEOSSimplify(g1,tolerance)
- * typeid = GEOSGeomTypeId(g3) # <<<<<<<<<<<<<<
- * if typeid == GEOS_POLYGON:
- * b = _get_coords(g3)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":165
+ * g1 = self._geom
+ * tolerance = tol
+ * g3 = GEOSSimplify(g1,tolerance) # <<<<<<<<<<<<<<
+ * typeid = GEOSGeomTypeId(g3)
+ * if typeid == GEOS_POLYGON:
 */
- __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
+ __pyx_v_g3 = GEOSSimplify(__pyx_v_g1, __pyx_v_tolerance);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":166
- * g3 = GEOSSimplify(g1,tolerance)
- * typeid = GEOSGeomTypeId(g3)
- * if typeid == GEOS_POLYGON: # <<<<<<<<<<<<<<
- * b = _get_coords(g3)
- * p = Polygon(b)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":166
+ * tolerance = tol
+ * g3 = GEOSSimplify(g1,tolerance)
+ * typeid = GEOSGeomTypeId(g3) # <<<<<<<<<<<<<<
+ * if typeid == GEOS_POLYGON:
+ * b = _get_coords(g3)
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_POLYGON);
- if (__pyx_2) {
+ __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":167
- * typeid = GEOSGeomTypeId(g3)
- * if typeid == GEOS_POLYGON:
- * b = _get_coords(g3) # <<<<<<<<<<<<<<
- * p = Polygon(b)
- * elif typeid == GEOS_LINESTRING:
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":167
+ * g3 = GEOSSimplify(g1,tolerance)
+ * typeid = GEOSGeomTypeId(g3)
+ * if typeid == GEOS_POLYGON: # <<<<<<<<<<<<<<
+ * b = _get_coords(g3)
+ * p = Polygon(b)
 */
- __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_v_b);
- __pyx_v_b = __pyx_3;
- __pyx_3 = 0;
+ __pyx_1 = (__pyx_v_typeid == GEOS_POLYGON);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":168
- * if typeid == GEOS_POLYGON:
- * b = _get_coords(g3)
- * p = Polygon(b) # <<<<<<<<<<<<<<
- * elif typeid == GEOS_LINESTRING:
- * b = _get_coords(g3)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":168
+ * typeid = GEOSGeomTypeId(g3)
+ * if typeid == GEOS_POLYGON:
+ * b = _get_coords(g3) # <<<<<<<<<<<<<<
+ * p = Polygon(b)
+ * elif typeid == GEOS_LINESTRING:
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_v_b);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_b);
- __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
- Py_DECREF(__pyx_v_p);
- __pyx_v_p = __pyx_4;
- __pyx_4 = 0;
- goto __pyx_L4;
- }
+ __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(__pyx_v_b);
+ __pyx_v_b = __pyx_3;
+ __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":169
- * b = _get_coords(g3)
- * p = Polygon(b)
- * elif typeid == GEOS_LINESTRING: # <<<<<<<<<<<<<<
- * b = _get_coords(g3)
- * p = LineString(b)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":169
+ * if typeid == GEOS_POLYGON:
+ * b = _get_coords(g3)
+ * p = Polygon(b) # <<<<<<<<<<<<<<
+ * elif typeid == GEOS_LINESTRING:
+ * b = _get_coords(g3)
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_LINESTRING);
- if (__pyx_2) {
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_INCREF(__pyx_v_b);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_b);
+ __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_v_p);
+ __pyx_v_p = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L5;
+ }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":170
- * p = Polygon(b)
- * elif typeid == GEOS_LINESTRING:
- * b = _get_coords(g3) # <<<<<<<<<<<<<<
- * p = LineString(b)
- * # for multi-geom structures, just return first one.
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":170
+ * b = _get_coords(g3)
+ * p = Polygon(b)
+ * elif typeid == GEOS_LINESTRING: # <<<<<<<<<<<<<<
+ * b = _get_coords(g3)
+ * p = LineString(b)
 */
- __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_v_b);
- __pyx_v_b = __pyx_3;
- __pyx_3 = 0;
+ __pyx_1 = (__pyx_v_typeid == GEOS_LINESTRING);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":171
- * elif typeid == GEOS_LINESTRING:
- * b = _get_coords(g3)
- * p = LineString(b) # <<<<<<<<<<<<<<
- * # for multi-geom structures, just return first one.
- * elif typeid == GEOS_MULTIPOLYGON:
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":171
+ * p = Polygon(b)
+ * elif typeid == GEOS_LINESTRING:
+ * b = _get_coords(g3) # <<<<<<<<<<<<<<
+ * p = LineString(b)
+ * # for multi-geom structures, just return first one.
 */
- __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_v_b);
- PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_b);
- __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
- Py_DECREF(__pyx_v_p);
- __pyx_v_p = __pyx_3;
- __pyx_3 = 0;
- goto __pyx_L4;
- }
+ __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(__pyx_v_b);
+ __pyx_v_b = __pyx_3;
+ __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":173
- * p = LineString(b)
- * # for multi-geom structures, just return first one.
- * elif typeid == GEOS_MULTIPOLYGON: # <<<<<<<<<<<<<<
- * numgeoms = GEOSGetNumGeometries(g3)
- * gout = GEOSGetGeometryN(g3, 0)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":172
+ * elif typeid == GEOS_LINESTRING:
+ * b = _get_coords(g3)
+ * p = LineString(b) # <<<<<<<<<<<<<<
+ * # for multi-geom structures, just return first one.
+ * elif typeid == GEOS_MULTIPOLYGON:
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_MULTIPOLYGON);
- if (__pyx_2) {
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_INCREF(__pyx_v_b);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_b);
+ __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_p);
+ __pyx_v_p = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L5;
+ }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":174
- * # for multi-geom structures, just return first one.
- * elif typeid == GEOS_MULTIPOLYGON:
- * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
- * gout = GEOSGetGeometryN(g3, 0)
- * b = _get_coords(gout)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":174
+ * p = LineString(b)
+ * # for multi-geom structures, just return first one.
+ * elif typeid == GEOS_MULTIPOLYGON: # <<<<<<<<<<<<<<
+ * numgeoms = GEOSGetNumGeometries(g3)
+ * gout = GEOSGetGeometryN(g3, 0)
 */
- __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
+ __pyx_1 = (__pyx_v_typeid == GEOS_MULTIPOLYGON);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":175
- * elif typeid == GEOS_MULTIPOLYGON:
- * numgeoms = GEOSGetNumGeometries(g3)
- * gout = GEOSGetGeometryN(g3, 0) # <<<<<<<<<<<<<<
- * b = _get_coords(gout)
- * p = Polygon(b)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":175
+ * # for multi-geom structures, just return first one.
+ * elif typeid == GEOS_MULTIPOLYGON:
+ * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
+ * gout = GEOSGetGeometryN(g3, 0)
+ * b = _get_coords(gout)
 */
- __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
+ __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":176
- * numgeoms = GEOSGetNumGeometries(g3)
- * gout = GEOSGetGeometryN(g3, 0)
- * b = _get_coords(gout) # <<<<<<<<<<<<<<
- * p = Polygon(b)
- * elif typeid == GEOS_MULTILINESTRING:
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":176
+ * elif typeid == GEOS_MULTIPOLYGON:
+ * numgeoms = GEOSGetNumGeometries(g3)
+ * gout = GEOSGetGeometryN(g3, 0) # <<<<<<<<<<<<<<
+ * b = _get_coords(gout)
+ * p = Polygon(b)
 */
- __pyx_4 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_v_b);
- __pyx_v_b = __pyx_4;
- __pyx_4 = 0;
+ __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":177
- * gout = GEOSGetGeometryN(g3, 0)
- * b = _get_coords(gout)
- * p = Polygon(b) # <<<<<<<<<<<<<<
- * elif typeid == GEOS_MULTILINESTRING:
- * numgeoms = GEOSGetNumGeometries(g3)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":177
+ * numgeoms = GEOSGetNumGeometries(g3)
+ * gout = GEOSGetGeometryN(g3, 0)
+ * b = _get_coords(gout) # <<<<<<<<<<<<<<
+ * p = Polygon(b)
+ * elif typeid == GEOS_MULTILINESTRING:
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_v_b);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_b);
- __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
- Py_DECREF(__pyx_v_p);
- __pyx_v_p = __pyx_4;
- __pyx_4 = 0;
- goto __pyx_L4;
- }
+ __pyx_4 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(__pyx_v_b);
+ __pyx_v_b = __pyx_4;
+ __pyx_4 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":178
- * b = _get_coords(gout)
- * p = Polygon(b)
- * elif typeid == GEOS_MULTILINESTRING: # <<<<<<<<<<<<<<
- * numgeoms = GEOSGetNumGeometries(g3)
- * gout = GEOSGetGeometryN(g3, 0)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":178
+ * gout = GEOSGetGeometryN(g3, 0)
+ * b = _get_coords(gout)
+ * p = Polygon(b) # <<<<<<<<<<<<<<
+ * elif typeid == GEOS_MULTILINESTRING:
+ * numgeoms = GEOSGetNumGeometries(g3)
 */
- __pyx_2 = (__pyx_v_typeid == GEOS_MULTILINESTRING);
- if (__pyx_2) {
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_INCREF(__pyx_v_b);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_b);
+ __pyx_4 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ Py_DECREF(__pyx_v_p);
+ __pyx_v_p = __pyx_4;
+ __pyx_4 = 0;
+ goto __pyx_L5;
+ }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":179
- * p = Polygon(b)
- * elif typeid == GEOS_MULTILINESTRING:
- * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
- * gout = GEOSGetGeometryN(g3, 0)
- * b = _get_coords(gout)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":179
+ * b = _get_coords(gout)
+ * p = Polygon(b)
+ * elif typeid == GEOS_MULTILINESTRING: # <<<<<<<<<<<<<<
+ * numgeoms = GEOSGetNumGeometries(g3)
+ * gout = GEOSGetGeometryN(g3, 0)
 */
- __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
+ __pyx_1 = (__pyx_v_typeid == GEOS_MULTILINESTRING);
+ if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":180
- * elif typeid == GEOS_MULTILINESTRING:
- * numgeoms = GEOSGetNumGeometries(g3)
- * gout = GEOSGetGeometryN(g3, 0) # <<<<<<<<<<<<<<
- * b = _get_coords(gout)
- * p = LineString(b)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":180
+ * p = Polygon(b)
+ * elif typeid == GEOS_MULTILINESTRING:
+ * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
+ * gout = GEOSGetGeometryN(g3, 0)
+ * b = _get_coords(gout)
 */
- __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
+ __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":181
- * numgeoms = GEOSGetNumGeometries(g3)
- * gout = GEOSGetGeometryN(g3, 0)
- * b = _get_coords(gout) # <<<<<<<<<<<<<<
- * p = LineString(b)
- * else:
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":181
+ * elif typeid == GEOS_MULTILINESTRING:
+ * numgeoms = GEOSGetNumGeometries(g3)
+ * gout = GEOSGetGeometryN(g3, 0) # <<<<<<<<<<<<<<
+ * b = _get_coords(gout)
+ * p = LineString(b)
 */
- __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_v_b);
- __pyx_v_b = __pyx_3;
- __pyx_3 = 0;
+ __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, 0);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":182
- * gout = GEOSGetGeometryN(g3, 0)
- * b = _get_coords(gout)
- * p = LineString(b) # <<<<<<<<<<<<<<
- * else:
- * type = PyString_FromString(GEOSGeomType(g3))
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":182
+ * numgeoms = GEOSGetNumGeometries(g3)
+ * gout = GEOSGetGeometryN(g3, 0)
+ * b = _get_coords(gout) # <<<<<<<<<<<<<<
+ * p = LineString(b)
+ * else:
 */
- __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_v_b);
- PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_b);
- __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
- Py_DECREF(__pyx_v_p);
- __pyx_v_p = __pyx_3;
- __pyx_3 = 0;
- goto __pyx_L4;
- }
- /*else*/ {
+ __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(__pyx_v_b);
+ __pyx_v_b = __pyx_3;
+ __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":184
- * p = LineString(b)
- * else:
- * type = PyString_FromString(GEOSGeomType(g3)) # <<<<<<<<<<<<<<
- * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type))
- * GEOSGeom_destroy(g3)
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":183
+ * gout = GEOSGetGeometryN(g3, 0)
+ * b = _get_coords(gout)
+ * p = LineString(b) # <<<<<<<<<<<<<<
+ * else:
+ * type = PyString_FromString(GEOSGeomType(g3))
 */
- __pyx_4 = PyString_FromString(GEOSGeomType(__pyx_v_g3)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_v_type);
- __pyx_v_type = __pyx_4;
- __pyx_4 = 0;
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_INCREF(__pyx_v_b);
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_b);
+ __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ Py_DECREF(__pyx_v_p);
+ __pyx_v_p = __pyx_3;
+ __pyx_3 = 0;
+ goto __pyx_L5;
+ }
+ /*else*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":185
- * else:
- * type = PyString_FromString(GEOSGeomType(g3))
- * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type)) # <<<<<<<<<<<<<<
- * GEOSGeom_destroy(g3)
- * return p
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":185
+ * p = LineString(b)
+ * else:
+ * type = PyString_FromString(GEOSGeomType(g3)) # <<<<<<<<<<<<<<
+ * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type))
+ * GEOSGeom_destroy(g3)
 */
- __pyx_3 = PyNumber_Remainder(__pyx_kp_5, __pyx_v_type); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
- PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
- __pyx_3 = 0;
- __pyx_3 = PyObject_Call(__pyx_builtin_NotImplementedError, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
- __Pyx_Raise(__pyx_3, 0, 0);
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
- }
- __pyx_L4:;
+ __pyx_4 = PyString_FromString(GEOSGeomType(__pyx_v_g3)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(__pyx_v_type);
+ __pyx_v_type = __pyx_4;
+ __pyx_4 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":186
- * type = PyString_FromString(GEOSGeomType(g3))
- * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type))
- * GEOSGeom_destroy(g3) # <<<<<<<<<<<<<<
- * return p
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":186
+ * else:
+ * type = PyString_FromString(GEOSGeomType(g3))
+ * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type)) # <<<<<<<<<<<<<<
+ * GEOSGeom_destroy(g3)
+ * return p
+ */
+ __pyx_3 = PyNumber_Remainder(__pyx_kp_5, __pyx_v_type); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
+ __pyx_3 = 0;
+ __pyx_3 = PyObject_Call(__pyx_builtin_NotImplementedError, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
+ __Pyx_Raise(__pyx_3, 0, 0);
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ }
+ __pyx_L5:;
+
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":187
+ * type = PyString_FromString(GEOSGeomType(g3))
+ * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type))
+ * GEOSGeom_destroy(g3) # <<<<<<<<<<<<<<
+ * return p
 * 
 */
- GEOSGeom_destroy(__pyx_v_g3);
+ GEOSGeom_destroy(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":187
- * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type))
- * GEOSGeom_destroy(g3)
- * return p # <<<<<<<<<<<<<<
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":188
+ * raise NotImplementedError("intersections of type '%s' not yet implemented" % (type))
+ * GEOSGeom_destroy(g3)
+ * return p # <<<<<<<<<<<<<<
 * 
 * def intersects(self, BaseGeometry geom):
 */
- Py_INCREF(__pyx_v_p);
- __pyx_r = __pyx_v_p;
- goto __pyx_L0;
+ Py_INCREF(__pyx_v_p);
+ __pyx_r = __pyx_v_p;
+ goto __pyx_L0;
+ goto __pyx_L4;
+ }
+ __pyx_L4:;
 
 __pyx_r = Py_None; Py_INCREF(Py_None);
 goto __pyx_L0;
@@ -1172,8 +1185,8 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":189
- * return p
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":190
+ * return p
 * 
 * def intersects(self, BaseGeometry geom): # <<<<<<<<<<<<<<
 * cdef GEOSGeom *g1, *g2
@@ -1187,9 +1200,9 @@
 char __pyx_v_answer;
 PyObject *__pyx_r;
 char __pyx_1;
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_8_geoslib_BaseGeometry, 1, "geom", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_8_geoslib_BaseGeometry, 1, "geom", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":192
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":193
 * cdef GEOSGeom *g1, *g2
 * cdef char answer
 * g1 = self._geom # <<<<<<<<<<<<<<
@@ -1198,7 +1211,7 @@
 */
 __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":193
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":194
 * cdef char answer
 * g1 = self._geom
 * g2 = geom._geom # <<<<<<<<<<<<<<
@@ -1207,7 +1220,7 @@
 */
 __pyx_v_g2 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_geom)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":194
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":195
 * g1 = self._geom
 * g2 = geom._geom
 * answer = GEOSIntersects(g1, g2) # <<<<<<<<<<<<<<
@@ -1216,7 +1229,7 @@
 */
 __pyx_v_answer = GEOSIntersects(__pyx_v_g1, __pyx_v_g2);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":195
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":196
 * g2 = geom._geom
 * answer = GEOSIntersects(g1, g2)
 * if answer: # <<<<<<<<<<<<<<
@@ -1226,7 +1239,7 @@
 __pyx_1 = __pyx_v_answer;
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":196
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":197
 * answer = GEOSIntersects(g1, g2)
 * if answer:
 * return True # <<<<<<<<<<<<<<
@@ -1240,7 +1253,7 @@
 }
 /*else*/ {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":198
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":199
 * return True
 * else:
 * return False # <<<<<<<<<<<<<<
@@ -1262,7 +1275,7 @@
 return __pyx_r;
 }
 
-/* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":200
+/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":201
 * return False
 * 
 * def intersection(self, BaseGeometry geom): # <<<<<<<<<<<<<<
@@ -1299,9 +1312,9 @@
 __pyx_v_p = Py_None; Py_INCREF(Py_None);
 __pyx_v_pout = Py_None; Py_INCREF(Py_None);
 __pyx_v_type = Py_None; Py_INCREF(Py_None);
- if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_8_geoslib_BaseGeometry, 1, "geom", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_geom), __pyx_ptype_8_geoslib_BaseGeometry, 1, "geom", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1;}
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":204
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":205
 * cdef char answer
 * cdef int numgeoms, i, typeid
 * g1 = self._geom # <<<<<<<<<<<<<<
@@ -1310,7 +1323,7 @@
 */
 __pyx_v_g1 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_self)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":205
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":206
 * cdef int numgeoms, i, typeid
 * g1 = self._geom
 * g2 = geom._geom # <<<<<<<<<<<<<<
@@ -1319,7 +1332,7 @@
 */
 __pyx_v_g2 = ((struct __pyx_obj_8_geoslib_BaseGeometry *)__pyx_v_geom)->_geom;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":206
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":207
 * g1 = self._geom
 * g2 = geom._geom
 * g3 = GEOSIntersection(g1, g2) # <<<<<<<<<<<<<<
@@ -1328,7 +1341,7 @@
 */
 __pyx_v_g3 = GEOSIntersection(__pyx_v_g1, __pyx_v_g2);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":207
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":208
 * g2 = geom._geom
 * g3 = GEOSIntersection(g1, g2)
 * typeid = GEOSGeomTypeId(g3) # <<<<<<<<<<<<<<
@@ -1337,7 +1350,7 @@
 */
 __pyx_v_typeid = GEOSGeomTypeId(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":208
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":209
 * g3 = GEOSIntersection(g1, g2)
 * typeid = GEOSGeomTypeId(g3)
 * if typeid == GEOS_POLYGON: # <<<<<<<<<<<<<<
@@ -1347,42 +1360,42 @@
 __pyx_1 = (__pyx_v_typeid == GEOS_POLYGON);
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":209
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":210
 * typeid = GEOSGeomTypeId(g3)
 * if typeid == GEOS_POLYGON:
 * b = _get_coords(g3) # <<<<<<<<<<<<<<
 * p = Polygon(b)
 * pout = [p]
 */
- __pyx_2 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_b);
 __pyx_v_b = __pyx_2;
 __pyx_2 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":210
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":211
 * if typeid == GEOS_POLYGON:
 * b = _get_coords(g3)
 * p = Polygon(b) # <<<<<<<<<<<<<<
 * pout = [p]
 * elif typeid == GEOS_LINESTRING:
 */
- __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_b);
 PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_b);
- __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
 Py_DECREF(__pyx_v_p);
 __pyx_v_p = __pyx_3;
 __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":211
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":212
 * b = _get_coords(g3)
 * p = Polygon(b)
 * pout = [p] # <<<<<<<<<<<<<<
 * elif typeid == GEOS_LINESTRING:
 * b = _get_coords(g3)
 */
- __pyx_2 = PyList_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyList_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_p);
 PyList_SET_ITEM(__pyx_2, 0, __pyx_v_p);
 Py_DECREF(__pyx_v_pout);
@@ -1391,7 +1404,7 @@
 goto __pyx_L4;
 }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":212
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":213
 * p = Polygon(b)
 * pout = [p]
 * elif typeid == GEOS_LINESTRING: # <<<<<<<<<<<<<<
@@ -1401,42 +1414,42 @@
 __pyx_1 = (__pyx_v_typeid == GEOS_LINESTRING);
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":213
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":214
 * pout = [p]
 * elif typeid == GEOS_LINESTRING:
 * b = _get_coords(g3) # <<<<<<<<<<<<<<
 * p = LineString(b)
 * pout = [p]
 */
- __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __pyx_f_8_geoslib__get_coords(__pyx_v_g3); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_b);
 __pyx_v_b = __pyx_3;
 __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":214
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":215
 * elif typeid == GEOS_LINESTRING:
 * b = _get_coords(g3)
 * p = LineString(b) # <<<<<<<<<<<<<<
 * pout = [p]
 * elif typeid == GEOS_MULTIPOLYGON:
 */
- __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_b);
 PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_b);
- __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_LineString), ((PyObject *)__pyx_2), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
 Py_DECREF(__pyx_v_p);
 __pyx_v_p = __pyx_3;
 __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":215
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":216
 * b = _get_coords(g3)
 * p = LineString(b)
 * pout = [p] # <<<<<<<<<<<<<<
 * elif typeid == GEOS_MULTIPOLYGON:
 * numgeoms = GEOSGetNumGeometries(g3)
 */
- __pyx_2 = PyList_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyList_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_p);
 PyList_SET_ITEM(__pyx_2, 0, __pyx_v_p);
 Py_DECREF(__pyx_v_pout);
@@ -1445,7 +1458,7 @@
 goto __pyx_L4;
 }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":216
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":217
 * p = LineString(b)
 * pout = [p]
 * elif typeid == GEOS_MULTIPOLYGON: # <<<<<<<<<<<<<<
@@ -1455,7 +1468,7 @@
 __pyx_1 = (__pyx_v_typeid == GEOS_MULTIPOLYGON);
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":217
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":218
 * pout = [p]
 * elif typeid == GEOS_MULTIPOLYGON:
 * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
@@ -1464,19 +1477,19 @@
 */
 __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":218
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":219
 * elif typeid == GEOS_MULTIPOLYGON:
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = [] # <<<<<<<<<<<<<<
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i)
 */
- __pyx_3 = PyList_New(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyList_New(0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_pout);
 __pyx_v_pout = ((PyObject *)__pyx_3);
 __pyx_3 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":219
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":220
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = []
 * for i from 0 <= i < numgeoms: # <<<<<<<<<<<<<<
@@ -1485,7 +1498,7 @@
 */
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_numgeoms; __pyx_v_i++) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":220
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":221
 * pout = []
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i) # <<<<<<<<<<<<<<
@@ -1494,48 +1507,48 @@
 */
 __pyx_v_gout = GEOSGetGeometryN(__pyx_v_g3, __pyx_v_i);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":221
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":222
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i)
 * b = _get_coords(gout) # <<<<<<<<<<<<<<
 * p = Polygon(b)
 * pout.append(p)
 */
- __pyx_2 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = __pyx_f_8_geoslib__get_coords(__pyx_v_gout); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_b);
 __pyx_v_b = __pyx_2;
 __pyx_2 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":222
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":223
 * gout = GEOSGetGeometryN(g3, i)
 * b = _get_coords(gout)
 * p = Polygon(b) # <<<<<<<<<<<<<<
 * pout.append(p)
 * elif typeid == GEOS_MULTILINESTRING:
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_INCREF(__pyx_v_b);
 PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_b);
- __pyx_2 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyObject_Call(((PyObject*)__pyx_ptype_8_geoslib_Polygon), ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
 Py_DECREF(__pyx_v_p);
 __pyx_v_p = __pyx_2;
 __pyx_2 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":223
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":224
 * b = _get_coords(gout)
 * p = Polygon(b)
 * pout.append(p) # <<<<<<<<<<<<<<
 * elif typeid == GEOS_MULTILINESTRING:
 * numgeoms = GEOSGetNumGeometries(g3)
 */
- __pyx_3 = __Pyx_PyObject_Append(__pyx_v_pout, __pyx_v_p); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __Pyx_PyObject_Append(__pyx_v_pout, __pyx_v_p); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 }
 goto __pyx_L4;
 }
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":224
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":225
 * p = Polygon(b)
 * pout.append(p)
 * elif typeid == GEOS_MULTILINESTRING: # <<<<<<<<<<<<<<
@@ -1545,7 +1558,7 @@
 __pyx_1 = (__pyx_v_typeid == GEOS_MULTILINESTRING);
 if (__pyx_1) {
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":225
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":226
 * pout.append(p)
 * elif typeid == GEOS_MULTILINESTRING:
 * numgeoms = GEOSGetNumGeometries(g3) # <<<<<<<<<<<<<<
@@ -1554,19 +1567,19 @@
 */
 __pyx_v_numgeoms = GEOSGetNumGeometries(__pyx_v_g3);
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":226
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":227
 * elif typeid == GEOS_MULTILINESTRING:
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = [] # <<<<<<<<<<<<<<
 * for i from 0 <= i < numgeoms:
 * gout = GEOSGetGeometryN(g3, i)
 */
- __pyx_2 = PyList_New(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyList_New(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_v_pout);
 __pyx_v_pout = ((PyObject *)__pyx_2);
 __pyx_2 = 0;
 
- /* "/Users/jsw/python/matplotlib/trunk/toolkits/basemap/src/_geoslib.pyx":227
+ /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":228
 * numgeoms = GEOSGetNumGeometries(g3)
 * pout = []
 * for i from 0 <= i < numgeoms: # <<<<<<<<<<<<<<
@@ -1575,7 +1588,7 @@
 */
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_numgeoms; __pyx_v_i++) {
 
- /* "/Users/jsw/python/matplotlib/...
 
[truncated message content]
From: <js...@us...> - 2008年08月11日 15:34:37
Revision: 6021
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6021&view=rev
Author: jswhit
Date: 2008年08月11日 15:34:30 +0000 (2008年8月11日)
Log Message:
-----------
up version number
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geoslib.c
 trunk/toolkits/basemap/src/_geoslib.pyx
Modified: trunk/toolkits/basemap/src/_geoslib.c
===================================================================
--- trunk/toolkits/basemap/src/_geoslib.c	2008年08月11日 15:07:49 UTC (rev 6020)
+++ trunk/toolkits/basemap/src/_geoslib.c	2008年08月11日 15:34:30 UTC (rev 6021)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.9.8 on Mon Aug 11 09:07:15 2008 */
+/* Generated by Cython 0.9.8 on Mon Aug 11 09:34:06 2008 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -297,7 +297,7 @@
 
 /* Implementation of _geoslib */
 
-static char __pyx_k_1[] = "0.1";
+static char __pyx_k_1[] = "0.2";
 
 static char __pyx_k_is_valid[] = "is_valid";
 static char __pyx_k_geom_type[] = "geom_type";
@@ -3480,7 +3480,7 @@
 * import sys
 * import numpy # <<<<<<<<<<<<<<
 * 
- * __version__ = "0.1"
+ * __version__ = "0.2"
 */
 __pyx_1 = __Pyx_Import(__pyx_kp_numpy, 0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1;}
 if (PyObject_SetAttr(__pyx_m, __pyx_kp_numpy, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1;}
@@ -3489,7 +3489,7 @@
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geoslib.pyx":4
 * import numpy
 * 
- * __version__ = "0.1" # <<<<<<<<<<<<<<
+ * __version__ = "0.2" # <<<<<<<<<<<<<<
 * 
 * # need some python C API functions for strings.
 */
Modified: trunk/toolkits/basemap/src/_geoslib.pyx
===================================================================
--- trunk/toolkits/basemap/src/_geoslib.pyx	2008年08月11日 15:07:49 UTC (rev 6020)
+++ trunk/toolkits/basemap/src/_geoslib.pyx	2008年08月11日 15:34:30 UTC (rev 6021)
@@ -1,7 +1,7 @@
 import sys
 import numpy
 
-__version__ = "0.1"
+__version__ = "0.2"
 
 # need some python C API functions for strings.
 cdef extern from "Python.h":
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <js...@us...> - 2008年12月17日 23:00:07
Revision: 6656
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6656&view=rev
Author: jswhit
Date: 2008年12月17日 23:00:03 +0000 (2008年12月17日)
Log Message:
-----------
regenerate with Cython 0.10.3
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geod.c
 trunk/toolkits/basemap/src/_geoslib.c
 trunk/toolkits/basemap/src/_proj.c
Modified: trunk/toolkits/basemap/src/_geod.c
===================================================================
--- trunk/toolkits/basemap/src/_geod.c	2008年12月17日 21:48:26 UTC (rev 6655)
+++ trunk/toolkits/basemap/src/_geod.c	2008年12月17日 23:00:03 UTC (rev 6656)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.9.8 on Fri Jun 13 14:28:31 2008 */
+/* Generated by Cython 0.10.3 on Wed Dec 17 15:57:33 2008 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -24,20 +24,22 @@
 #if PY_VERSION_HEX < 0x02060000
 #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
 #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
- #define Py_SIZE(ob) ((PyVarObject*)(ob))->ob_size)
+ #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size)
 #define PyVarObject_HEAD_INIT(type, size) \
 PyObject_HEAD_INIT(type) size,
+ #define PyType_Modified(t)
 
 typedef struct {
 void *buf;
+ PyObject *obj;
 Py_ssize_t len;
+ Py_ssize_t itemsize;
 int readonly;
- const char *format;
 int ndim;
+ char *format;
 Py_ssize_t *shape;
 Py_ssize_t *strides;
 Py_ssize_t *suboffsets;
- Py_ssize_t itemsize;
 void *internal;
 } Py_buffer;
 
@@ -51,6 +53,7 @@
 #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
 #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
 #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
+
 #endif
 #if PY_MAJOR_VERSION < 3
 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
@@ -61,6 +64,9 @@
 #define Py_TPFLAGS_CHECKTYPES 0
 #define Py_TPFLAGS_HAVE_INDEX 0
 #endif
+#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
+ #define Py_TPFLAGS_HAVE_NEWBUFFER 0
+#endif
 #if PY_MAJOR_VERSION >= 3
 #define PyBaseString_Type PyUnicode_Type
 #define PyString_Type PyBytes_Type
@@ -77,19 +83,24 @@
 #define PyInt_AsSsize_t PyLong_AsSsize_t
 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
- #define PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
+ #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
 #else
+ #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
 #define PyBytes_Type PyString_Type
 #endif
 #if PY_MAJOR_VERSION >= 3
 #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
 #endif
-#ifndef __stdcall
- #define __stdcall
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+ #ifndef __stdcall
+ #define __stdcall
+ #endif
+ #ifndef __cdecl
+ #define __cdecl
+ #endif
+#else
+ #define _USE_MATH_DEFINES
 #endif
-#ifndef __cdecl
- #define __cdecl
-#endif
 #ifdef __cplusplus
 #define __PYX_EXTERN_C extern "C"
 #else
@@ -171,18 +182,27 @@
 static const char *__pyx_filename;
 static const char **__pyx_f;
 
-static INLINE void __Pyx_RaiseArgtupleTooLong(Py_ssize_t num_expected, Py_ssize_t num_found); /*proto*/
+static void __Pyx_RaiseDoubleKeywordsError(
+ const char* func_name, PyObject* kw_name); /*proto*/
 
+static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
+ Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
+
+static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/
+
 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
 
 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
 
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
-static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
+static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
 static void __Pyx_AddTraceback(const char *funcname); /*proto*/
 
+static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
+
 /* Type declarations */
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":5
@@ -203,40 +223,83 @@
 /* Module declarations from _geod */
 
 static PyTypeObject *__pyx_ptype_5_geod_Geod = 0;
+static PyObject *__pyx_k_12;
+static PyObject *__pyx_k_13;
+static PyObject *__pyx_k_14;
 
 
 /* Implementation of _geod */
-
-static char __pyx_k_3[] = "1.8.6";
-
+static char __pyx_k_11[] = "1.8.6";
 static char __pyx_k___cinit__[] = "__cinit__";
+static PyObject *__pyx_kp___cinit__;
 static char __pyx_k___reduce__[] = "__reduce__";
+static PyObject *__pyx_kp___reduce__;
 static char __pyx_k__fwd[] = "_fwd";
+static PyObject *__pyx_kp__fwd;
 static char __pyx_k__inv[] = "_inv";
+static PyObject *__pyx_kp__inv;
 static char __pyx_k__npts[] = "_npts";
-static char __pyx_k_math[] = "math";
+static PyObject *__pyx_kp__npts;
+static char __pyx_k_geodstring[] = "geodstring";
+static PyObject *__pyx_kp_geodstring;
+static char __pyx_k_lons[] = "lons";
+static PyObject *__pyx_kp_lons;
+static char __pyx_k_lats[] = "lats";
+static PyObject *__pyx_kp_lats;
+static char __pyx_k_az[] = "az";
+static PyObject *__pyx_kp_az;
+static char __pyx_k_dist[] = "dist";
+static PyObject *__pyx_kp_dist;
 static char __pyx_k_radians[] = "radians";
-static char __pyx_k_1[] = "_dg2rad";
-static char __pyx_k_degrees[] = "degrees";
-static char __pyx_k_2[] = "_rad2dg";
-static char __pyx_k__doublesize[] = "_doublesize";
-static char __pyx_k___version__[] = "__version__";
-
-static PyObject *__pyx_kp___cinit__;
-static PyObject *__pyx_kp___reduce__;
-static PyObject *__pyx_kp__fwd;
-static PyObject *__pyx_kp__inv;
-static PyObject *__pyx_kp__npts;
-static PyObject *__pyx_kp_math;
 static PyObject *__pyx_kp_radians;
+static char __pyx_k_1[] = "lons1";
 static PyObject *__pyx_kp_1;
+static char __pyx_k_2[] = "lats1";
+static PyObject *__pyx_kp_2;
+static char __pyx_k_3[] = "lons2";
+static PyObject *__pyx_kp_3;
+static char __pyx_k_4[] = "lats2";
+static PyObject *__pyx_kp_4;
+static char __pyx_k_5[] = "lon1";
+static PyObject *__pyx_kp_5;
+static char __pyx_k_6[] = "lat1";
+static PyObject *__pyx_kp_6;
+static char __pyx_k_7[] = "lon2";
+static PyObject *__pyx_kp_7;
+static char __pyx_k_8[] = "lat2";
+static PyObject *__pyx_kp_8;
+static char __pyx_k_npts[] = "npts";
+static PyObject *__pyx_kp_npts;
+static char __pyx_k_math[] = "math";
+static PyObject *__pyx_kp_math;
+static char __pyx_k_9[] = "_dg2rad";
+static PyObject *__pyx_kp_9;
+static char __pyx_k_degrees[] = "degrees";
 static PyObject *__pyx_kp_degrees;
-static PyObject *__pyx_kp_2;
+static char __pyx_k_10[] = "_rad2dg";
+static PyObject *__pyx_kp_10;
+static char __pyx_k__doublesize[] = "_doublesize";
 static PyObject *__pyx_kp__doublesize;
+static char __pyx_k___version__[] = "__version__";
 static PyObject *__pyx_kp___version__;
+static char __pyx_k_RuntimeError[] = "RuntimeError";
+static PyObject *__pyx_kp_RuntimeError;
+static char __pyx_k___class__[] = "__class__";
+static PyObject *__pyx_kp___class__;
+static char __pyx_k_ValueError[] = "ValueError";
+static PyObject *__pyx_kp_ValueError;
+static PyObject *__pyx_kp_11;
+static PyObject *__pyx_builtin_RuntimeError;
+static PyObject *__pyx_builtin_ValueError;
+static PyObject *__pyx_kp_15;
+static PyObject *__pyx_kp_16;
+static char __pyx_k_15[] = "Buffer lengths not the same";
+static char __pyx_k_16[] = "undefined forward geodesic (may be an equatorial arc)";
+static PyObject *__pyx_kp_17;
+static PyObject *__pyx_kp_18;
+static char __pyx_k_17[] = "Buffer lengths not the same";
+static char __pyx_k_18[] = "undefined inverse geodesic (may be an antipodal point)";
 
-static PyObject *__pyx_kp_3;
-
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":11
 * cdef char *geodinitstring
 * 
@@ -245,12 +308,6 @@
 * # setup geod initialization string.
 */
 
-static char __pyx_k_RuntimeError[] = "RuntimeError";
-
-static PyObject *__pyx_kp_RuntimeError;
-
-static PyObject *__pyx_builtin_RuntimeError;
-
 static int __pyx_pf_5_geod_4Geod___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static int __pyx_pf_5_geod_4Geod___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 PyObject *__pyx_v_geodstring = 0;
@@ -259,18 +316,37 @@
 int __pyx_1;
 PyObject *__pyx_2 = 0;
 PyObject *__pyx_3 = 0;
- static char *__pyx_argnames[] = {"geodstring",0};
- if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 1)) {
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_geodstring,0};
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[1] = {0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_geodstring);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__new__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_geodstring = values[0];
+ } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
+ goto __pyx_L5_argtuple_error;
+ } else {
 __pyx_v_geodstring = PyTuple_GET_ITEM(__pyx_args, 0);
 }
- else {
- if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_geodstring))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L2;}
- }
- goto __pyx_L3;
- __pyx_L2:;
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("__new__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
 __Pyx_AddTraceback("_geod.Geod.__cinit__");
 return -1;
- __pyx_L3:;
+ __pyx_L4_argument_unpacking_done:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":14
 * cdef GEODESIC_T GEOD_T
@@ -318,18 +394,18 @@
 * self.proj_version = PJ_VERSION/100.
 * 
 */
- __pyx_2 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
 __pyx_2 = 0;
- __pyx_2 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
 __Pyx_Raise(__pyx_2, 0, 0);
 Py_DECREF(__pyx_2); __pyx_2 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L4;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L6;
 }
- __pyx_L4:;
+ __pyx_L6:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":20
 * if pj_errno != 0:
@@ -338,14 +414,14 @@
 * 
 * def __reduce__(self):
 */
- __pyx_3 = PyFloat_FromDouble((PJ_VERSION / 100.)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyFloat_FromDouble((PJ_VERSION / 100.)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version);
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version = __pyx_3;
 __pyx_3 = 0;
 
 __pyx_r = 0;
 goto __pyx_L0;
- __pyx_L1:;
+ __pyx_L1_error:;
 Py_XDECREF(__pyx_2);
 Py_XDECREF(__pyx_3);
 __Pyx_AddTraceback("_geod.Geod.__cinit__");
@@ -362,10 +438,6 @@
 * return (self.__class__,(self.geodstring,))
 */
 
-static char __pyx_k___class__[] = "__class__";
-
-static PyObject *__pyx_kp___class__;
-
 static PyObject *__pyx_pf_5_geod_4Geod___reduce__(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
 static char __pyx_doc_5_geod_4Geod___reduce__[] = "special method that allows pyproj.Geod instance to be pickled";
 static PyObject *__pyx_pf_5_geod_4Geod___reduce__(PyObject *__pyx_v_self, PyObject *unused) {
@@ -381,11 +453,11 @@
 * 
 * def _fwd(self, object lons, object lats, object az, object dist, radians=False):
 */
- __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_kp___class__); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_kp___class__); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_INCREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 PyTuple_SET_ITEM(__pyx_2, 0, ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
- __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
 PyTuple_SET_ITEM(__pyx_3, 1, ((PyObject *)__pyx_2));
 __pyx_1 = 0;
@@ -396,7 +468,7 @@
 
 __pyx_r = Py_None; Py_INCREF(Py_None);
 goto __pyx_L0;
- __pyx_L1:;
+ __pyx_L1_error:;
 Py_XDECREF(__pyx_1);
 Py_XDECREF(__pyx_2);
 Py_XDECREF(__pyx_3);
@@ -414,18 +486,6 @@
 * forward transformation - determine longitude, latitude and back azimuth
 */
 
-static char __pyx_k_ValueError[] = "ValueError";
-
-static PyObject *__pyx_kp_ValueError;
-
-static PyObject *__pyx_kp_4;
-static PyObject *__pyx_kp_5;
-
-static PyObject *__pyx_builtin_ValueError;
-
-static char __pyx_k_4[] = "Buffer lengths not the same";
-static char __pyx_k_5[] = "undefined forward geodesic (may be an equatorial arc)";
-
 static PyObject *__pyx_pf_5_geod_4Geod__fwd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static char __pyx_doc_5_geod_4Geod__fwd[] = "\n forward transformation - determine longitude, latitude and back azimuth \n of a terminus point given an initial point longitude and latitude, plus\n forward azimuth and distance.\n if radians=True, lons/lats are radians instead of degrees.\n ";
 static PyObject *__pyx_pf_5_geod_4Geod__fwd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
@@ -453,29 +513,78 @@
 int __pyx_2;
 PyObject *__pyx_3 = 0;
 PyObject *__pyx_4 = 0;
- PyObject *__pyx_5 = 0;
- Py_ssize_t __pyx_6 = 0;
- double __pyx_7;
- int __pyx_8;
- static char *__pyx_argnames[] = {"lons","lats","az","dist","radians",0};
- __pyx_v_radians = Py_False;
- if (likely(!__pyx_kwds) && likely(4 <= PyTuple_GET_SIZE(__pyx_args)) && likely(PyTuple_GET_SIZE(__pyx_args) <= 5)) {
- __pyx_v_lons = PyTuple_GET_ITEM(__pyx_args, 0);
- __pyx_v_lats = PyTuple_GET_ITEM(__pyx_args, 1);
- __pyx_v_az = PyTuple_GET_ITEM(__pyx_args, 2);
- __pyx_v_dist = PyTuple_GET_ITEM(__pyx_args, 3);
- if (PyTuple_GET_SIZE(__pyx_args) > 4) {
+ Py_ssize_t __pyx_5 = 0;
+ double __pyx_6;
+ int __pyx_7;
+ PyObject *__pyx_t_1 = NULL;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_lons,&__pyx_kp_lats,&__pyx_kp_az,&__pyx_kp_dist,&__pyx_kp_radians,0};
+ __pyx_v_radians = __pyx_k_12;
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[5] = {0,0,0,0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+ case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+ case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_lons);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_lats);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 2:
+ values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_az);
+ if (likely(values[2])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 3:
+ values[3] = PyDict_GetItem(__pyx_kwds, __pyx_kp_dist);
+ if (likely(values[3])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_fwd") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_lons = values[0];
+ __pyx_v_lats = values[1];
+ __pyx_v_az = values[2];
+ __pyx_v_dist = values[3];
+ if (values[4]) {
+ __pyx_v_radians = values[4];
+ }
+ } else {
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 5:
 __pyx_v_radians = PyTuple_GET_ITEM(__pyx_args, 4);
+ case 4:
+ __pyx_v_dist = PyTuple_GET_ITEM(__pyx_args, 3);
+ __pyx_v_az = PyTuple_GET_ITEM(__pyx_args, 2);
+ __pyx_v_lats = PyTuple_GET_ITEM(__pyx_args, 1);
+ __pyx_v_lons = PyTuple_GET_ITEM(__pyx_args, 0);
+ break;
+ default: goto __pyx_L5_argtuple_error;
 }
 }
- else {
- if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOOO|O", __pyx_argnames, &__pyx_v_lons, &__pyx_v_lats, &__pyx_v_az, &__pyx_v_dist, &__pyx_v_radians))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L2;}
- }
- goto __pyx_L3;
- __pyx_L2:;
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
 __Pyx_AddTraceback("_geod.Geod._fwd");
 return NULL;
- __pyx_L3:;
+ __pyx_L4_argument_unpacking_done:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":37
 * cdef void *londata, *latdata, *azdat, *distdat
@@ -495,10 +604,10 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L4;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L6;
 }
- __pyx_L4:;
+ __pyx_L6:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":39
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenlons) <> 0:
@@ -518,10 +627,10 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L5;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L7;
 }
- __pyx_L5:;
+ __pyx_L7:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":41
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0:
@@ -541,10 +650,10 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L6;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L8;
 }
- __pyx_L6:;
+ __pyx_L8:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":43
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0:
@@ -564,10 +673,10 @@
 * if not buflenlons == buflenlats == buflenaz == buflend:
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L7;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L9;
 }
- __pyx_L7:;
+ __pyx_L9:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":46
 * raise RuntimeError
@@ -593,17 +702,17 @@
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_kp_4);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_4);
- __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_15);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_15);
+ __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
 __Pyx_Raise(__pyx_4, 0, 0);
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L8;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L10;
 }
- __pyx_L8:;
+ __pyx_L10:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":48
 * if not buflenlons == buflenlats == buflenaz == buflend:
@@ -612,14 +721,14 @@
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 */
- __pyx_3 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_5 = PyNumber_Divide(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyIndex_AsSsize_t(__pyx_5); if (unlikely((__pyx_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- __pyx_v_ndim = __pyx_6;
+ __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ __pyx_v_ndim = __pyx_5;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":49
 * raise RuntimeError("Buffer lengths not the same")
@@ -673,7 +782,7 @@
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i]
 */
- __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":55
@@ -711,7 +820,7 @@
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.DIST = (__pyx_v_distdata[__pyx_v_i]);
- goto __pyx_L11;
+ goto __pyx_L13;
 }
 /*else*/ {
 
@@ -722,14 +831,14 @@
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_5 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_7 = __pyx_PyFloat_AsDouble(__pyx_5); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_7;
+ __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":61
 * else:
@@ -738,14 +847,14 @@
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i]
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_5 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_7 = __pyx_PyFloat_AsDouble(__pyx_5); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = __pyx_7;
+ __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = __pyx_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":62
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
@@ -754,14 +863,14 @@
 * self.geodesic_t.DIST = distdata[i]
 * geod_pre(&self.geodesic_t)
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_azdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_5 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble((__pyx_v_azdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_7 = __pyx_PyFloat_AsDouble(__pyx_5); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = __pyx_7;
+ __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = __pyx_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":63
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
@@ -772,7 +881,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.DIST = (__pyx_v_distdata[__pyx_v_i]);
 }
- __pyx_L11:;
+ __pyx_L13:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":64
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
@@ -800,18 +909,18 @@
 * geod_for(&self.geodesic_t)
 * if pj_errno != 0:
 */
- __pyx_3 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
 __pyx_3 = 0;
- __pyx_5 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
- __Pyx_Raise(__pyx_5, 0, 0);
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L12;
+ __Pyx_Raise(__pyx_3, 0, 0);
+ Py_DECREF(__pyx_3); __pyx_3 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L14;
 }
- __pyx_L12:;
+ __pyx_L14:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":67
 * if pj_errno != 0:
@@ -839,18 +948,18 @@
 * if isnan(self.geodesic_t.ALPHA21):
 * raise ValueError('undefined forward geodesic (may be an equatorial arc)')
 */
- __pyx_3 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1;}
- PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
- __pyx_3 = 0;
- __pyx_5 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
- __Pyx_Raise(__pyx_5, 0, 0);
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L13;
+ __pyx_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
+ __pyx_4 = 0;
+ __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
+ __Pyx_Raise(__pyx_4, 0, 0);
+ Py_DECREF(__pyx_4); __pyx_4 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L15;
 }
- __pyx_L13:;
+ __pyx_L15:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":70
 * if pj_errno != 0:
@@ -859,8 +968,8 @@
 * raise ValueError('undefined forward geodesic (may be an equatorial arc)')
 * if radians:
 */
- __pyx_8 = isnan(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21);
- if (__pyx_8) {
+ __pyx_7 = isnan(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21);
+ if (__pyx_7) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":71
 * raise RuntimeError(pj_strerrno(pj_errno))
@@ -869,17 +978,17 @@
 * if radians:
 * lonsdata[i] = self.geodesic_t.p2.v
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_kp_5);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_5);
- __pyx_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_16);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_16);
+ __pyx_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
 __Pyx_Raise(__pyx_4, 0, 0);
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L14;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L16;
 }
- __pyx_L14:;
+ __pyx_L16:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":72
 * if isnan(self.geodesic_t.ALPHA21):
@@ -888,7 +997,7 @@
 * lonsdata[i] = self.geodesic_t.p2.v
 * latsdata[i] = self.geodesic_t.p2.u
 */
- __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":73
@@ -917,7 +1026,7 @@
 * lonsdata[i] = _rad2dg*self.geodesic_t.p2.v
 */
 (__pyx_v_azdata[__pyx_v_i]) = ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21;
- goto __pyx_L15;
+ goto __pyx_L17;
 }
 /*else*/ {
 
@@ -928,14 +1037,14 @@
 * latsdata[i] = _rad2dg*self.geodesic_t.p2.u
 * azdata[i] = _rad2dg*self.geodesic_t.ALPHA21
 */
- __pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_3 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.v); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyNumber_Multiply(__pyx_5, __pyx_3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.v); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_7 = __pyx_PyFloat_AsDouble(__pyx_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_7;
+ __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":78
 * else:
@@ -944,14 +1053,14 @@
 * azdata[i] = _rad2dg*self.geodesic_t.ALPHA21
 * 
 */
- __pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_3 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.u); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyNumber_Multiply(__pyx_5, __pyx_3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.u); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_7 = __pyx_PyFloat_AsDouble(__pyx_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- (__pyx_v_latsdata[__pyx_v_i]) = __pyx_7;
+ __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ (__pyx_v_latsdata[__pyx_v_i]) = __pyx_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":79
 * lonsdata[i] = _rad2dg*self.geodesic_t.p2.v
@@ -960,24 +1069,23 @@
 * 
 * def _inv(self, object lons1, object lats1, object lons2, object lats2, radians=False):
 */
- __pyx_5 = __Pyx_GetName(__pyx_m, __pyx_kp_2); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_3 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyNumber_Multiply(__pyx_5, __pyx_3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
- __pyx_7 = __pyx_PyFloat_AsDouble(__pyx_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1;}
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- (__pyx_v_azdata[__pyx_v_i]) = __pyx_7;
+ __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ (__pyx_v_azdata[__pyx_v_i]) = __pyx_6;
 }
- __pyx_L15:;
+ __pyx_L17:;
 }
 
 __pyx_r = Py_None; Py_INCREF(Py_None);
 goto __pyx_L0;
- __pyx_L1:;
+ __pyx_L1_error:;
 Py_XDECREF(__pyx_3);
 Py_XDECREF(__pyx_4);
- Py_XDECREF(__pyx_5);
 __Pyx_AddTraceback("_geod.Geod._fwd");
 __pyx_r = NULL;
 __pyx_L0:;
@@ -992,12 +1100,6 @@
 * inverse transformation - return forward and back azimuths, plus distance
 */
 
-static PyObject *__pyx_kp_6;
-static PyObject *__pyx_kp_7;
-
-static char __pyx_k_6[] = "Buffer lengths not the same";
-static char __pyx_k_7[] = "undefined inverse geodesic (may be an antipodal point)";
-
 static PyObject *__pyx_pf_5_geod_4Geod__inv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static char __pyx_doc_5_geod_4Geod__inv[] = "\n inverse transformation - return forward and back azimuths, plus distance\n between an initial and terminus lat/lon pair.\n if radians=True, lons/lats are radians instead of degrees.\n ";
 static PyObject *__pyx_pf_5_geod_4Geod__inv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
@@ -1025,29 +1127,78 @@
 int __pyx_2;
 PyObject *__pyx_3 = 0;
 PyObject *__pyx_4 = 0;
- PyObject *__pyx_5 = 0;
- Py_ssize_t __pyx_6 = 0;
- double __pyx_7;
- int __pyx_8;
- static char *__pyx_argnames[] = {"lons1","lats1","lons2","lats2","radians",0};
- __pyx_v_radians = Py_False;
- if (likely(!__pyx_kwds) && likely(4 <= PyTuple_GET_SIZE(__pyx_args)) && likely(PyTuple_GET_SIZE(__pyx_args) <= 5)) {
- __pyx_v_lons1 = PyTuple_GET_ITEM(__pyx_args, 0);
- __pyx_v_lats1 = PyTuple_GET_ITEM(__pyx_args, 1);
- __pyx_v_lons2 = PyTuple_GET_ITEM(__pyx_args, 2);
- __pyx_v_lats2 = PyTuple_GET_ITEM(__pyx_args, 3);
- if (PyTuple_GET_SIZE(__pyx_args) > 4) {
+ Py_ssize_t __pyx_5 = 0;
+ double __pyx_6;
+ int __pyx_7;
+ PyObject *__pyx_t_1 = NULL;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_kp_1,&__pyx_kp_2,&__pyx_kp_3,&__pyx_kp_4,&__pyx_kp_radians,0};
+ __pyx_v_radians = __pyx_k_13;
+ if (unlikely(__pyx_kwds)) {
+ PyObject* values[5] = {0,0,0,0,0};
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+ case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+ case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+ case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+ case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+ case 0: break;
+ default: goto __pyx_L5_argtuple_error;
+ }
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 0:
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_1);
+ if (likely(values[0])) kw_args--;
+ else goto __pyx_L5_argtuple_error;
+ case 1:
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_2);
+ if (likely(values[1])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 4, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 2:
+ values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_3);
+ if (likely(values[2])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 4, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ case 3:
+ values[3] = PyDict_GetItem(__pyx_kwds, __pyx_kp_4);
+ if (likely(values[3])) kw_args--;
+ else {
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ }
+ if (unlikely(kw_args > 0)) {
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ }
+ __pyx_v_lons1 = values[0];
+ __pyx_v_lats1 = values[1];
+ __pyx_v_lons2 = values[2];
+ __pyx_v_lats2 = values[3];
+ if (values[4]) {
+ __pyx_v_radians = values[4];
+ }
+ } else {
+ switch (PyTuple_GET_SIZE(__pyx_args)) {
+ case 5:
 __pyx_v_radians = PyTuple_GET_ITEM(__pyx_args, 4);
+ case 4:
+ __pyx_v_lats2 = PyTuple_GET_ITEM(__pyx_args, 3);
+ __pyx_v_lons2 = PyTuple_GET_ITEM(__pyx_args, 2);
+ __pyx_v_lats1 = PyTuple_GET_ITEM(__pyx_args, 1);
+ __pyx_v_lons1 = PyTuple_GET_ITEM(__pyx_args, 0);
+ break;
+ default: goto __pyx_L5_argtuple_error;
 }
 }
- else {
- if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOOO|O", __pyx_argnames, &__pyx_v_lons1, &__pyx_v_lats1, &__pyx_v_lons2, &__pyx_v_lats2, &__pyx_v_radians))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L2;}
- }
- goto __pyx_L3;
- __pyx_L2:;
+ goto __pyx_L4_argument_unpacking_done;
+ __pyx_L5_argtuple_error:;
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __pyx_L3_error:;
 __Pyx_AddTraceback("_geod.Geod._inv");
 return NULL;
- __pyx_L3:;
+ __pyx_L4_argument_unpacking_done:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":91
 * cdef void *londata, *latdata, *azdat, *distdat
@@ -1067,10 +1218,10 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L4;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L6;
 }
- __pyx_L4:;
+ __pyx_L6:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":93
 * if PyObject_AsWriteBuffer(lons1, &londata, &buflenlons) <> 0:
@@ -1090,10 +1241,10 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L5;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L7;
 }
- __pyx_L5:;
+ __pyx_L7:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":95
 * if PyObject_AsWriteBuffer(lats1, &latdata, &buflenlats) <> 0:
@@ -1113,10 +1264,10 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L6;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L8;
 }
- __pyx_L6:;
+ __pyx_L8:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":97
 * if PyObject_AsWriteBuffer(lons2, &azdat, &buflenaz) <> 0:
@@ -1136,10 +1287,10 @@
 * if not buflenlons == buflenlats == buflenaz == buflend:
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L7;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L9;
 }
- __pyx_L7:;
+ __pyx_L9:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":100
 * raise RuntimeError
@@ -1165,17 +1316,17 @@
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_INCREF(__pyx_kp_6);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_6);
- __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_INCREF(__pyx_kp_17);
+ PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_17);
+ __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
 __Pyx_Raise(__pyx_4, 0, 0);
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1;}
- goto __pyx_L8;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L10;
 }
- __pyx_L8:;
+ __pyx_L10:;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":102
 * if not buflenlons == buflenlats == buflenaz == buflend:
@@ -1184,14 +1335,14 @@
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 */
- __pyx_3 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_5 = PyNumber_Divide(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyIndex_AsSsize_t(__pyx_5); if (unlikely((__pyx_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- __pyx_v_ndim = __pyx_6;
+ __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ __pyx_v_ndim = __pyx_5;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":103
 * raise RuntimeError("Buffer lengths not the same")
@@ -1245,7 +1396,7 @@
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i]
 */
- __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":109
@@ -1283,7 +1434,7 @@
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.u = (__pyx_v_distdata[__pyx_v_i]);
- goto __pyx_L11;
+ goto __pyx_L13;
 }
 /*else*/ {
 
@@ -1294,14 +1445,14 @@
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.p2.v = _dg2rad*azdata[i]
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_5 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_7 = __pyx_PyFloat_AsDouble(__pyx_5); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1;}
- Py_DECREF(__pyx_5); __pyx_5 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_7;
+ __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":115
 * else:
@@ -1310,14 +1461,14 @@
 * self.geodesic_t.p2.v = _dg2rad*azdata[i]
 * self.geodesic_t.p2.u = _dg2rad*distdata[i]
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1;}
- __pyx_5 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1;}
+ __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 Py_DECREF(__pyx_3); __pyx_3 = 0;
 Py_...
 
[truncated message content]
From: <js...@us...> - 2009年08月05日 15:47:38
Revision: 7376
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7376&view=rev
Author: jswhit
Date: 2009年08月05日 15:47:20 +0000 (2009年8月05日)
Log Message:
-----------
apply sf patch 2831704, regnerate c source files with cython 0.11.2
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geod.c
 trunk/toolkits/basemap/src/_geoslib.c
 trunk/toolkits/basemap/src/_proj.c
 trunk/toolkits/basemap/src/geod_set.c
Modified: trunk/toolkits/basemap/src/_geod.c
===================================================================
--- trunk/toolkits/basemap/src/_geod.c	2009年08月05日 15:43:54 UTC (rev 7375)
+++ trunk/toolkits/basemap/src/_geod.c	2009年08月05日 15:47:20 UTC (rev 7376)
@@ -1,8 +1,11 @@
-/* Generated by Cython 0.10.3 on Wed Dec 17 15:57:33 2008 */
+/* Generated by Cython 0.11.2 on Wed Aug 5 09:35:57 2009 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
 #include "structmember.h"
+#ifndef Py_PYTHON_H
+ #error Python headers needed to compile C extensions, please install development version of Python.
+#endif
 #ifndef PY_LONG_LONG
 #define PY_LONG_LONG LONG_LONG
 #endif
@@ -11,11 +14,13 @@
 #endif
 #if PY_VERSION_HEX < 0x02040000
 #define METH_COEXIST 0
+ #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
 #endif
 #if PY_VERSION_HEX < 0x02050000
 typedef int Py_ssize_t;
 #define PY_SSIZE_T_MAX INT_MAX
 #define PY_SSIZE_T_MIN INT_MIN
+ #define PY_FORMAT_SIZE_T ""
 #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
 #define PyInt_AsSsize_t(o) PyInt_AsLong(o)
 #define PyNumber_Index(o) PyNumber_Int(o)
@@ -45,7 +50,6 @@
 
 #define PyBUF_SIMPLE 0
 #define PyBUF_WRITABLE 0x0001
- #define PyBUF_LOCK 0x0002
 #define PyBUF_FORMAT 0x0004
 #define PyBUF_ND 0x0008
 #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
@@ -70,6 +74,7 @@
 #if PY_MAJOR_VERSION >= 3
 #define PyBaseString_Type PyUnicode_Type
 #define PyString_Type PyBytes_Type
+ #define PyString_CheckExact PyBytes_CheckExact
 #define PyInt_Type PyLong_Type
 #define PyInt_Check(op) PyLong_Check(op)
 #define PyInt_CheckExact(op) PyLong_CheckExact(op)
@@ -98,9 +103,29 @@
 #ifndef __cdecl
 #define __cdecl
 #endif
+ #ifndef __fastcall
+ #define __fastcall
+ #endif
 #else
+ #define isnan _isnan
 #define _USE_MATH_DEFINES
 #endif
+#if PY_VERSION_HEX < 0x02050000
+ #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n)))
+ #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
+ #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n)))
+#else
+ #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n))
+ #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
+ #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n))
+#endif
+#if PY_VERSION_HEX < 0x02050000
+ #define __Pyx_NAMESTR(n) ((char *)(n))
+ #define __Pyx_DOCSTR(n) ((char *)(n))
+#else
+ #define __Pyx_NAMESTR(n) (n)
+ #define __Pyx_DOCSTR(n) (n)
+#endif
 #ifdef __cplusplus
 #define __PYX_EXTERN_C extern "C"
 #else
@@ -112,6 +137,7 @@
 #include "math.h"
 #include "geodesic.h"
 #include "proj_api.h"
+#define __PYX_USE_C99_COMPLEX defined(_Complex_I)
 
 
 #ifdef __GNUC__
@@ -132,33 +158,54 @@
 /* Type Conversion Predeclarations */
 
 #if PY_MAJOR_VERSION < 3
-#define __Pyx_PyBytes_FromString PyString_FromString
-#define __Pyx_PyBytes_AsString PyString_AsString
+#define __Pyx_PyBytes_FromString PyString_FromString
+#define __Pyx_PyBytes_FromStringAndSize PyString_FromStringAndSize
+#define __Pyx_PyBytes_AsString PyString_AsString
 #else
-#define __Pyx_PyBytes_FromString PyBytes_FromString
-#define __Pyx_PyBytes_AsString PyBytes_AsString
+#define __Pyx_PyBytes_FromString PyBytes_FromString
+#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
+#define __Pyx_PyBytes_AsString PyBytes_AsString
 #endif
 
 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
-static INLINE int __Pyx_PyObject_IsTrue(PyObject* x);
-static INLINE PY_LONG_LONG __pyx_PyInt_AsLongLong(PyObject* x);
-static INLINE unsigned PY_LONG_LONG __pyx_PyInt_AsUnsignedLongLong(PyObject* x);
-static INLINE Py_ssize_t __pyx_PyIndex_AsSsize_t(PyObject* b);
+static INLINE int __Pyx_PyObject_IsTrue(PyObject*);
+static INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
 
-#define __pyx_PyInt_AsLong(x) (PyInt_CheckExact(x) ? PyInt_AS_LONG(x) : PyInt_AsLong(x))
+#if !defined(T_PYSSIZET)
+#if PY_VERSION_HEX < 0x02050000
+#define T_PYSSIZET T_INT
+#elif !defined(T_LONGLONG)
+#define T_PYSSIZET \
+ ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
+ ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : -1))
+#else
+#define T_PYSSIZET \
+ ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
+ ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : \
+ ((sizeof(Py_ssize_t) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))
+#endif
+#endif
+
+#if !defined(T_SIZET)
+#if !defined(T_ULONGLONG)
+#define T_SIZET \
+ ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
+ ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : -1))
+#else
+#define T_SIZET \
+ ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
+ ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : \
+ ((sizeof(size_t) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))
+#endif
+#endif
+
+static INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
+static INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
+static INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
+
 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
 
-static INLINE unsigned char __pyx_PyInt_unsigned_char(PyObject* x);
-static INLINE unsigned short __pyx_PyInt_unsigned_short(PyObject* x);
-static INLINE char __pyx_PyInt_char(PyObject* x);
-static INLINE short __pyx_PyInt_short(PyObject* x);
-static INLINE int __pyx_PyInt_int(PyObject* x);
-static INLINE long __pyx_PyInt_long(PyObject* x);
-static INLINE signed char __pyx_PyInt_signed_char(PyObject* x);
-static INLINE signed short __pyx_PyInt_signed_short(PyObject* x);
-static INLINE signed int __pyx_PyInt_signed_int(PyObject* x);
-static INLINE signed long __pyx_PyInt_signed_long(PyObject* x);
-static INLINE long double __pyx_PyInt_long_double(PyObject* x);
+
 #ifdef __GNUC__
 /* Test for GCC > 2.95 */
 #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) 
@@ -182,6 +229,37 @@
 static const char *__pyx_filename;
 static const char **__pyx_f;
 
+
+#ifdef CYTHON_REFNANNY
+typedef struct {
+ void (*INCREF)(void*, PyObject*, int);
+ void (*DECREF)(void*, PyObject*, int);
+ void (*GOTREF)(void*, PyObject*, int);
+ void (*GIVEREF)(void*, PyObject*, int);
+ void* (*NewContext)(const char*, int, const char*);
+ void (*FinishContext)(void**);
+} __Pyx_RefnannyAPIStruct;
+static __Pyx_RefnannyAPIStruct *__Pyx_Refnanny = NULL;
+#define __Pyx_ImportRefcountAPI(name) (__Pyx_RefnannyAPIStruct *) PyCObject_Import((char *)name, (char *)"RefnannyAPI")
+#define __Pyx_INCREF(r) __Pyx_Refnanny->INCREF(__pyx_refchk, (PyObject *)(r), __LINE__)
+#define __Pyx_DECREF(r) __Pyx_Refnanny->DECREF(__pyx_refchk, (PyObject *)(r), __LINE__)
+#define __Pyx_GOTREF(r) __Pyx_Refnanny->GOTREF(__pyx_refchk, (PyObject *)(r), __LINE__)
+#define __Pyx_GIVEREF(r) __Pyx_Refnanny->GIVEREF(__pyx_refchk, (PyObject *)(r), __LINE__)
+#define __Pyx_XDECREF(r) if((r) == NULL) ; else __Pyx_DECREF(r)
+#define __Pyx_SetupRefcountContext(name) void* __pyx_refchk = __Pyx_Refnanny->NewContext((name), __LINE__, __FILE__)
+#define __Pyx_FinishRefcountContext() __Pyx_Refnanny->FinishContext(&__pyx_refchk)
+#else
+#define __Pyx_INCREF(r) Py_INCREF(r)
+#define __Pyx_DECREF(r) Py_DECREF(r)
+#define __Pyx_GOTREF(r)
+#define __Pyx_GIVEREF(r)
+#define __Pyx_XDECREF(r) Py_XDECREF(r)
+#define __Pyx_SetupRefcountContext(name)
+#define __Pyx_FinishRefcountContext()
+#endif /* CYTHON_REFNANNY */
+#define __Pyx_XGIVEREF(r) if((r) == NULL) ; else __Pyx_GIVEREF(r)
+#define __Pyx_XGOTREF(r) if((r) == NULL) ; else __Pyx_GOTREF(r)
+
 static void __Pyx_RaiseDoubleKeywordsError(
 const char* func_name, PyObject* kw_name); /*proto*/
 
@@ -199,6 +277,38 @@
 static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
+static INLINE int __Pyx_StrEq(const char *, const char *); /*proto*/
+
+static INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
+
+static INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
+
+static INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
+
+static INLINE char __Pyx_PyInt_AsChar(PyObject *);
+
+static INLINE short __Pyx_PyInt_AsShort(PyObject *);
+
+static INLINE int __Pyx_PyInt_AsInt(PyObject *);
+
+static INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
+
+static INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
+
+static INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
+
+static INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
+
+static INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
+
+static INLINE long __Pyx_PyInt_AsLong(PyObject *);
+
+static INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
+
+static INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
+
+static INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
+
 static void __Pyx_AddTraceback(const char *funcname); /*proto*/
 
 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
@@ -223,13 +333,16 @@
 /* Module declarations from _geod */
 
 static PyTypeObject *__pyx_ptype_5_geod_Geod = 0;
-static PyObject *__pyx_k_12;
-static PyObject *__pyx_k_13;
-static PyObject *__pyx_k_14;
+static PyObject *__pyx_k_12 = 0;
+static PyObject *__pyx_k_13 = 0;
+static PyObject *__pyx_k_14 = 0;
+#define __Pyx_MODULE_NAME "_geod"
+int __pyx_module_is_main__geod = 0;
 
-
 /* Implementation of _geod */
 static char __pyx_k_11[] = "1.8.6";
+static char __pyx_k___main__[] = "__main__";
+static PyObject *__pyx_kp___main__;
 static char __pyx_k___cinit__[] = "__cinit__";
 static PyObject *__pyx_kp___cinit__;
 static char __pyx_k___reduce__[] = "__reduce__";
@@ -313,13 +426,14 @@
 PyObject *__pyx_v_geodstring = 0;
 GEODESIC_T __pyx_v_GEOD_T;
 int __pyx_r;
- int __pyx_1;
- PyObject *__pyx_2 = 0;
- PyObject *__pyx_3 = 0;
+ int __pyx_t_1;
+ PyObject *__pyx_t_2 = NULL;
+ PyObject *__pyx_t_3 = NULL;
 static PyObject **__pyx_pyargnames[] = {&__pyx_kp_geodstring,0};
+ __Pyx_SetupRefcountContext("__cinit__");
 if (unlikely(__pyx_kwds)) {
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 PyObject* values[1] = {0};
- Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 case 0: break;
@@ -355,8 +469,10 @@
 * self.geodinitstring = PyString_AsString(self.geodstring)
 * # initialize projection
 */
- Py_INCREF(__pyx_v_geodstring);
- Py_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
+ __Pyx_INCREF(__pyx_v_geodstring);
+ __Pyx_GIVEREF(__pyx_v_geodstring);
+ __Pyx_GOTREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
+ __Pyx_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring = __pyx_v_geodstring;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":15
@@ -384,8 +500,8 @@
 * raise RuntimeError(pj_strerrno(pj_errno))
 * self.proj_version = PJ_VERSION/100.
 */
- __pyx_1 = (pj_errno != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (pj_errno != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":19
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0]
@@ -394,14 +510,18 @@
 * self.proj_version = PJ_VERSION/100.
 * 
 */
- __pyx_2 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
- __pyx_2 = 0;
- __pyx_2 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
- __Pyx_Raise(__pyx_2, 0, 0);
- Py_DECREF(__pyx_2); __pyx_2 = 0;
+ __pyx_t_2 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
+ __Pyx_GIVEREF(__pyx_t_2);
+ __pyx_t_2 = 0;
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L6;
 }
@@ -414,19 +534,23 @@
 * 
 * def __reduce__(self):
 */
- __pyx_3 = PyFloat_FromDouble((PJ_VERSION / 100.)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version);
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version = __pyx_3;
- __pyx_3 = 0;
+ __pyx_t_2 = PyFloat_FromDouble((PJ_VERSION / 100.0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_GIVEREF(__pyx_t_2);
+ __Pyx_GOTREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version);
+ __Pyx_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version);
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version = __pyx_t_2;
+ __pyx_t_2 = 0;
 
 __pyx_r = 0;
 goto __pyx_L0;
 __pyx_L1_error:;
- Py_XDECREF(__pyx_2);
- Py_XDECREF(__pyx_3);
+ __Pyx_XDECREF(__pyx_t_2);
+ __Pyx_XDECREF(__pyx_t_3);
 __Pyx_AddTraceback("_geod.Geod.__cinit__");
 __pyx_r = -1;
 __pyx_L0:;
+ __Pyx_FinishRefcountContext();
 return __pyx_r;
 }
 
@@ -441,10 +565,11 @@
 static PyObject *__pyx_pf_5_geod_4Geod___reduce__(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
 static char __pyx_doc_5_geod_4Geod___reduce__[] = "special method that allows pyproj.Geod instance to be pickled";
 static PyObject *__pyx_pf_5_geod_4Geod___reduce__(PyObject *__pyx_v_self, PyObject *unused) {
- PyObject *__pyx_r;
- PyObject *__pyx_1 = 0;
- PyObject *__pyx_2 = 0;
- PyObject *__pyx_3 = 0;
+ PyObject *__pyx_r = NULL;
+ PyObject *__pyx_t_1 = NULL;
+ PyObject *__pyx_t_2 = NULL;
+ PyObject *__pyx_t_3 = NULL;
+ __Pyx_SetupRefcountContext("__reduce__");
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":24
 * def __reduce__(self):
@@ -453,28 +578,37 @@
 * 
 * def _fwd(self, object lons, object lats, object az, object dist, radians=False):
 */
- __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_kp___class__); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_INCREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
- PyTuple_SET_ITEM(__pyx_2, 0, ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
- __pyx_3 = PyTuple_New(2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_1);
- PyTuple_SET_ITEM(__pyx_3, 1, ((PyObject *)__pyx_2));
- __pyx_1 = 0;
- __pyx_2 = 0;
- __pyx_r = ((PyObject *)__pyx_3);
- __pyx_3 = 0;
+ __Pyx_XDECREF(__pyx_r);
+ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_kp___class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+ __Pyx_INCREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
+ PyTuple_SET_ITEM(__pyx_t_2, 0, ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
+ __Pyx_GIVEREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
+ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
+ __Pyx_GIVEREF(__pyx_t_1);
+ PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+ __pyx_t_1 = 0;
+ __pyx_t_2 = 0;
+ __pyx_r = ((PyObject *)__pyx_t_3);
+ __pyx_t_3 = 0;
 goto __pyx_L0;
 
- __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 goto __pyx_L0;
 __pyx_L1_error:;
- Py_XDECREF(__pyx_1);
- Py_XDECREF(__pyx_2);
- Py_XDECREF(__pyx_3);
+ __Pyx_XDECREF(__pyx_t_1);
+ __Pyx_XDECREF(__pyx_t_2);
+ __Pyx_XDECREF(__pyx_t_3);
 __Pyx_AddTraceback("_geod.Geod.__reduce__");
 __pyx_r = NULL;
 __pyx_L0:;
+ __Pyx_XGIVEREF(__pyx_r);
+ __Pyx_FinishRefcountContext();
 return __pyx_r;
 }
 
@@ -508,20 +642,21 @@
 void *__pyx_v_latdata;
 void *__pyx_v_azdat;
 void *__pyx_v_distdat;
- PyObject *__pyx_r;
- int __pyx_1;
- int __pyx_2;
- PyObject *__pyx_3 = 0;
- PyObject *__pyx_4 = 0;
- Py_ssize_t __pyx_5 = 0;
- double __pyx_6;
- int __pyx_7;
- PyObject *__pyx_t_1 = NULL;
+ PyObject *__pyx_r = NULL;
+ PyObject *__pyx_1 = 0;
+ int __pyx_t_1;
+ int __pyx_t_2;
+ PyObject *__pyx_t_3 = NULL;
+ PyObject *__pyx_t_4 = NULL;
+ Py_ssize_t __pyx_t_5;
+ double __pyx_t_6;
+ int __pyx_t_7;
 static PyObject **__pyx_pyargnames[] = {&__pyx_kp_lons,&__pyx_kp_lats,&__pyx_kp_az,&__pyx_kp_dist,&__pyx_kp_radians,0};
- __pyx_v_radians = __pyx_k_12;
+ __Pyx_SetupRefcountContext("_fwd");
 if (unlikely(__pyx_kwds)) {
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 PyObject* values[5] = {0,0,0,0,0};
- Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ values[4] = __pyx_k_12;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
@@ -554,6 +689,11 @@
 else {
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
+ case 4:
+ if (kw_args > 1) {
+ PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_radians);
+ if (unlikely(value)) { values[4] = value; kw_args--; }
+ }
 }
 if (unlikely(kw_args > 0)) {
 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_fwd") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
@@ -562,10 +702,9 @@
 __pyx_v_lats = values[1];
 __pyx_v_az = values[2];
 __pyx_v_dist = values[3];
- if (values[4]) {
- __pyx_v_radians = values[4];
- }
+ __pyx_v_radians = values[4];
 } else {
+ __pyx_v_radians = __pyx_k_12;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 5:
 __pyx_v_radians = PyTuple_GET_ITEM(__pyx_args, 4);
@@ -593,8 +732,8 @@
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0:
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_lons, (&__pyx_v_londata), (&__pyx_v_buflenlons)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lons, (&__pyx_v_londata), (&__pyx_v_buflenlons)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":38
 * # if buffer api is supported, get pointer to data buffers.
@@ -616,8 +755,8 @@
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0:
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_lats, (&__pyx_v_latdata), (&__pyx_v_buflenlats)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lats, (&__pyx_v_latdata), (&__pyx_v_buflenlats)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":40
 * raise RuntimeError
@@ -639,8 +778,8 @@
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(dist, &distdat, &buflend) <> 0:
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_az, (&__pyx_v_azdat), (&__pyx_v_buflenaz)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_az, (&__pyx_v_azdat), (&__pyx_v_buflenaz)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":42
 * raise RuntimeError
@@ -662,8 +801,8 @@
 * raise RuntimeError
 * # process data in buffer
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_dist, (&__pyx_v_distdat), (&__pyx_v_buflend)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_dist, (&__pyx_v_distdat), (&__pyx_v_buflend)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":44
 * raise RuntimeError
@@ -685,15 +824,15 @@
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenlons/_doublesize
 */
- __pyx_1 = (__pyx_v_buflenlons == __pyx_v_buflenlats);
- if (__pyx_1) {
- __pyx_1 = (__pyx_v_buflenlats == __pyx_v_buflenaz);
- if (__pyx_1) {
- __pyx_1 = (__pyx_v_buflenaz == __pyx_v_buflend);
+ __pyx_t_1 = (__pyx_v_buflenlons == __pyx_v_buflenlats);
+ if (__pyx_t_1) {
+ __pyx_t_1 = (__pyx_v_buflenlats == __pyx_v_buflenaz);
+ if (__pyx_t_1) {
+ __pyx_t_1 = (__pyx_v_buflenaz == __pyx_v_buflend);
 }
 }
- __pyx_2 = (!__pyx_1);
- if (__pyx_2) {
+ __pyx_t_2 = (!__pyx_t_1);
+ if (__pyx_t_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":47
 * # process data in buffer
@@ -702,13 +841,16 @@
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_INCREF(__pyx_kp_15);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_15);
- __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
- __Pyx_Raise(__pyx_4, 0, 0);
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ __Pyx_INCREF(__pyx_kp_15);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_15);
+ __Pyx_GIVEREF(__pyx_kp_15);
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L10;
 }
@@ -721,14 +863,17 @@
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 */
- __pyx_3 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_v_ndim = __pyx_5;
+ __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_v_ndim = __pyx_t_5;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":49
 * raise RuntimeError("Buffer lengths not the same")
@@ -773,7 +918,8 @@
 * if radians:
 * self.geodesic_t.p1.v = lonsdata[i]
 */
- for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_ndim; __pyx_v_i++) {
+ __pyx_t_5 = __pyx_v_ndim;
+ for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":54
 * distdata = <double *>distdat
@@ -782,8 +928,8 @@
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i]
 */
- __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_1) {
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":55
 * for i from 0 <= i < ndim:
@@ -831,14 +977,17 @@
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_6;
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_3 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_t_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":61
 * else:
@@ -847,14 +996,17 @@
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i]
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = __pyx_6;
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyNumber_Multiply(__pyx_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = __pyx_t_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":62
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
@@ -863,14 +1015,17 @@
 * self.geodesic_t.DIST = distdata[i]
 * geod_pre(&self.geodesic_t)
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_azdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = __pyx_6;
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_3 = PyFloat_FromDouble((__pyx_v_azdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = __pyx_t_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":63
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
@@ -899,8 +1054,8 @@
 * raise RuntimeError(pj_strerrno(pj_errno))
 * geod_for(&self.geodesic_t)
 */
- __pyx_2 = (pj_errno != 0);
- if (__pyx_2) {
+ __pyx_t_2 = (pj_errno != 0);
+ if (__pyx_t_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":66
 * geod_pre(&self.geodesic_t)
@@ -909,14 +1064,18 @@
 * geod_for(&self.geodesic_t)
 * if pj_errno != 0:
 */
- __pyx_3 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
- __pyx_3 = 0;
- __pyx_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
- __Pyx_Raise(__pyx_3, 0, 0);
- Py_DECREF(__pyx_3); __pyx_3 = 0;
+ __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+ __Pyx_GIVEREF(__pyx_t_4);
+ __pyx_t_4 = 0;
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L14;
 }
@@ -938,8 +1097,8 @@
 * raise RuntimeError(pj_strerrno(pj_errno))
 * if isnan(self.geodesic_t.ALPHA21):
 */
- __pyx_1 = (pj_errno != 0);
- if (__pyx_1) {
+ __pyx_t_2 = (pj_errno != 0);
+ if (__pyx_t_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":69
 * geod_for(&self.geodesic_t)
@@ -948,14 +1107,18 @@
 * if isnan(self.geodesic_t.ALPHA21):
 * raise ValueError('undefined forward geodesic (may be an equatorial arc)')
 */
- __pyx_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
- __pyx_4 = 0;
- __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
- __Pyx_Raise(__pyx_4, 0, 0);
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+ __Pyx_GIVEREF(__pyx_t_4);
+ __pyx_t_4 = 0;
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L15;
 }
@@ -968,8 +1131,8 @@
 * raise ValueError('undefined forward geodesic (may be an equatorial arc)')
 * if radians:
 */
- __pyx_7 = isnan(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21);
- if (__pyx_7) {
+ __pyx_t_7 = isnan(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21);
+ if (__pyx_t_7) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":71
 * raise RuntimeError(pj_strerrno(pj_errno))
@@ -978,13 +1141,16 @@
 * if radians:
 * lonsdata[i] = self.geodesic_t.p2.v
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_INCREF(__pyx_kp_16);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_16);
- __pyx_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
- __Pyx_Raise(__pyx_4, 0, 0);
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+ __Pyx_INCREF(__pyx_kp_16);
+ PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_16);
+ __Pyx_GIVEREF(__pyx_kp_16);
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_3, 0, 0);
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L16;
 }
@@ -997,8 +1163,8 @@
 * lonsdata[i] = self.geodesic_t.p2.v
 * latsdata[i] = self.geodesic_t.p2.u
 */
- __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_2) {
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":73
 * raise ValueError('undefined forward geodesic (may be an equatorial arc)')
@@ -1037,14 +1203,17 @@
 * latsdata[i] = _rad2dg*self.geodesic_t.p2.u
 * azdata[i] = _rad2dg*self.geodesic_t.ALPHA21
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.v); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_6;
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.v); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_t_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":78
 * else:
@@ -1053,14 +1222,17 @@
 * azdata[i] = _rad2dg*self.geodesic_t.ALPHA21
 * 
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.u); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- (__pyx_v_latsdata[__pyx_v_i]) = __pyx_6;
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_4 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.u); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyNumber_Multiply(__pyx_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ (__pyx_v_latsdata[__pyx_v_i]) = __pyx_t_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":79
 * lonsdata[i] = _rad2dg*self.geodesic_t.p2.v
@@ -1069,26 +1241,32 @@
 * 
 * def _inv(self, object lons1, object lats1, object lons2, object lats2, radians=False):
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- (__pyx_v_azdata[__pyx_v_i]) = __pyx_6;
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_10); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_3 = PyFloat_FromDouble(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ (__pyx_v_azdata[__pyx_v_i]) = __pyx_t_6;
 }
 __pyx_L17:;
 }
 
- __pyx_r = Py_None; Py_INCREF(Py_None);
+ __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 goto __pyx_L0;
 __pyx_L1_error:;
- Py_XDECREF(__pyx_3);
- Py_XDECREF(__pyx_4);
+ __Pyx_XDECREF(__pyx_1);
+ __Pyx_XDECREF(__pyx_t_3);
+ __Pyx_XDECREF(__pyx_t_4);
 __Pyx_AddTraceback("_geod.Geod._fwd");
 __pyx_r = NULL;
 __pyx_L0:;
+ __Pyx_XGIVEREF(__pyx_r);
+ __Pyx_FinishRefcountContext();
 return __pyx_r;
 }
 
@@ -1122,20 +1300,21 @@
 void *__pyx_v_latdata;
 void *__pyx_v_azdat;
 void *__pyx_v_distdat;
- PyObject *__pyx_r;
- int __pyx_1;
- int __pyx_2;
- PyObject *__pyx_3 = 0;
- PyObject *__pyx_4 = 0;
- Py_ssize_t __pyx_5 = 0;
- double __pyx_6;
- int __pyx_7;
- PyObject *__pyx_t_1 = NULL;
+ PyObject *__pyx_r = NULL;
+ PyObject *__pyx_1 = 0;
+ int __pyx_t_1;
+ int __pyx_t_2;
+ PyObject *__pyx_t_3 = NULL;
+ PyObject *__pyx_t_4 = NULL;
+ Py_ssize_t __pyx_t_5;
+ double __pyx_t_6;
+ int __pyx_t_7;
 static PyObject **__pyx_pyargnames[] = {&__pyx_kp_1,&__pyx_kp_2,&__pyx_kp_3,&__pyx_kp_4,&__pyx_kp_radians,0};
- __pyx_v_radians = __pyx_k_13;
+ __Pyx_SetupRefcountContext("_inv");
 if (unlikely(__pyx_kwds)) {
+ Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 PyObject* values[5] = {0,0,0,0,0};
- Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
+ values[4] = __pyx_k_13;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
@@ -1168,6 +1347,11 @@
 else {
 __Pyx_RaiseArgtupleInvalid("_inv", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
+ case 4:
+ if (kw_args > 1) {
+ PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_radians);
+ if (unlikely(value)) { values[4] = value; kw_args--; }
+ }
 }
 if (unlikely(kw_args > 0)) {
 if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
@@ -1176,10 +1360,9 @@
 __pyx_v_lats1 = values[1];
 __pyx_v_lons2 = values[2];
 __pyx_v_lats2 = values[3];
- if (values[4]) {
- __pyx_v_radians = values[4];
- }
+ __pyx_v_radians = values[4];
 } else {
+ __pyx_v_radians = __pyx_k_13;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 5:
 __pyx_v_radians = PyTuple_GET_ITEM(__pyx_args, 4);
@@ -1207,8 +1390,8 @@
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats1, &latdata, &buflenlats) <> 0:
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_lons1, (&__pyx_v_londata), (&__pyx_v_buflenlons)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lons1, (&__pyx_v_londata), (&__pyx_v_buflenlons)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":92
 * # if buffer api is supported, get pointer to data buffers.
@@ -1230,8 +1413,8 @@
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lons2, &azdat, &buflenaz) <> 0:
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_lats1, (&__pyx_v_latdata), (&__pyx_v_buflenlats)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lats1, (&__pyx_v_latdata), (&__pyx_v_buflenlats)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":94
 * raise RuntimeError
@@ -1253,8 +1436,8 @@
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats2, &distdat, &buflend) <> 0:
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_lons2, (&__pyx_v_azdat), (&__pyx_v_buflenaz)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lons2, (&__pyx_v_azdat), (&__pyx_v_buflenaz)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":96
 * raise RuntimeError
@@ -1276,8 +1459,8 @@
 * raise RuntimeError
 * # process data in buffer
 */
- __pyx_1 = (PyObject_AsWriteBuffer(__pyx_v_lats2, (&__pyx_v_distdat), (&__pyx_v_buflend)) != 0);
- if (__pyx_1) {
+ __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lats2, (&__pyx_v_distdat), (&__pyx_v_buflend)) != 0);
+ if (__pyx_t_1) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":98
 * raise RuntimeError
@@ -1299,15 +1482,15 @@
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenlons/_doublesize
 */
- __pyx_1 = (__pyx_v_buflenlons == __pyx_v_buflenlats);
- if (__pyx_1) {
- __pyx_1 = (__pyx_v_buflenlats == __pyx_v_buflenaz);
- if (__pyx_1) {
- __pyx_1 = (__pyx_v_buflenaz == __pyx_v_buflend);
+ __pyx_t_1 = (__pyx_v_buflenlons == __pyx_v_buflenlats);
+ if (__pyx_t_1) {
+ __pyx_t_1 = (__pyx_v_buflenlats == __pyx_v_buflenaz);
+ if (__pyx_t_1) {
+ __pyx_t_1 = (__pyx_v_buflenaz == __pyx_v_buflend);
 }
 }
- __pyx_2 = (!__pyx_1);
- if (__pyx_2) {
+ __pyx_t_2 = (!__pyx_t_1);
+ if (__pyx_t_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":101
 * # process data in buffer
@@ -1316,13 +1499,16 @@
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata
 */
- __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_INCREF(__pyx_kp_17);
- PyTuple_SET_ITEM(__pyx_3, 0, __pyx_kp_17);
- __pyx_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
- __Pyx_Raise(__pyx_4, 0, 0);
- Py_DECREF(__pyx_4); __pyx_4 = 0;
+ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ __Pyx_INCREF(__pyx_kp_17);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_17);
+ __Pyx_GIVEREF(__pyx_kp_17);
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L10;
 }
@@ -1335,14 +1521,17 @@
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 */
- __pyx_3 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- __pyx_v_ndim = __pyx_5;
+ __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_v_ndim = __pyx_t_5;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":103
 * raise RuntimeError("Buffer lengths not the same")
@@ -1387,7 +1576,8 @@
 * if radians:
 * self.geodesic_t.p1.v = lonsdata[i]
 */
- for (__pyx_v_i = 0; __pyx_v_i < __pyx_v_ndim; __pyx_v_i++) {
+ __pyx_t_5 = __pyx_v_ndim;
+ for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":108
 * distdata = <double *>distdat
@@ -1396,8 +1586,8 @@
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i]
 */
- __pyx_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_1) {
+ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_2) {
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":109
 * for i from 0 <= i < ndim:
@@ -1445,14 +1635,17 @@
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.p2.v = _dg2rad*azdata[i]
 */
- __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __pyx_t_1 = PyNumber_Multiply(__pyx_3, __pyx_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_3); __pyx_3 = 0;
- Py_DECREF(__pyx_4); __pyx_4 = 0;
- __pyx_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_6;
+ __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_1);
+ __pyx_t_3 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_t_6;
 
 /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":115
 * else:
@@ -1461,14 +1654,17 @@
 * ...
 
[truncated message content]
From: <js...@us...> - 2009年11月04日 16:26:43
Revision: 7935
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7935&view=rev
Author: jswhit
Date: 2009年11月04日 16:26:37 +0000 (2009年11月04日)
Log Message:
-----------
new files in proj4 4.7.0
Added Paths:
-----------
 trunk/toolkits/basemap/src/PJ_gstmerc.c
 trunk/toolkits/basemap/src/pj_initcache.c
 trunk/toolkits/basemap/src/pj_mutex.c
Added: trunk/toolkits/basemap/src/PJ_gstmerc.c
===================================================================
--- trunk/toolkits/basemap/src/PJ_gstmerc.c	 (rev 0)
+++ trunk/toolkits/basemap/src/PJ_gstmerc.c	2009年11月04日 16:26:37 UTC (rev 7935)
@@ -0,0 +1,48 @@
+#define PROJ_PARMS__ \
+	double lamc;\
+	double phic;\
+	double c;\
+	double n1;\
+	double n2;\
+ double XS;\
+ double YS;
+
+#define PJ_LIB__
+# include	<projects.h>
+PROJ_HEAD(gstmerc, "Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion)")
+	"\n\tCyl, Sph&Ell\n\tlat_0= lon_0= k_0=";
+FORWARD(s_forward); /* spheroid */
+	double L, Ls, sinLs1, Ls1;
+	L= P->n1*lp.lam;
+ Ls= P->c+P->n1*log(pj_tsfn(-1.0*lp.phi,-1.0*sin(lp.phi),P->e));
+ sinLs1= sin(L)/cosh(Ls);
+ Ls1= log(pj_tsfn(-1.0*asin(sinLs1),0.0,0.0));
+ xy.x= (P->XS + P->n2*Ls1)*P->ra;
+ xy.y= (P->YS + P->n2*atan(sinh(Ls)/cos(L)))*P->ra;
+ /*fprintf(stderr,"fwd:\nL =%16.13f\nLs =%16.13f\nLs1 =%16.13f\nLP(%16.13f,%16.13f)=XY(%16.4f,%16.4f)\n",L,Ls,Ls1,lp.lam+P->lam0,lp.phi,(xy.x*P->a + P->x0)*P->to_meter,(xy.y*P->a + P->y0)*P->to_meter);*/
+	return (xy);
+}
+INVERSE(s_inverse); /* spheroid */
+	double L, LC, sinC;
+	L= atan(sinh((xy.x*P->a - P->XS)/P->n2)/cos((xy.y*P->a - P->YS)/P->n2));
+ sinC= sin((xy.y*P->a - P->YS)/P->n2)/cosh((xy.x*P->a - P->XS)/P->n2);
+ LC= log(pj_tsfn(-1.0*asin(sinC),0.0,0.0));
+ lp.lam= L/P->n1;
+ lp.phi= -1.0*pj_phi2(exp((LC-P->c)/P->n1),P->e);
+ /*fprintf(stderr,"inv:\nL =%16.13f\nsinC =%16.13f\nLC =%16.13f\nXY(%16.4f,%16.4f)=LP(%16.13f,%16.13f)\n",L,sinC,LC,((xy.x/P->ra)+P->x0)/P->to_meter,((xy.y/P->ra)+P->y0)/P->to_meter,lp.lam+P->lam0,lp.phi);*/
+	return (lp);
+}
+FREEUP; if (P) pj_dalloc(P); }
+ENTRY0(gstmerc)
+ P->lamc= P->lam0;
+ P->n1= sqrt(1.0+P->es*pow(cos(P->phi0),4.0)/(1.0-P->es));
+ P->phic= asin(sin(P->phi0)/P->n1);
+ P->c= log(pj_tsfn(-1.0*P->phic,0.0,0.0))
+ -P->n1*log(pj_tsfn(-1.0*P->phi0,-1.0*sin(P->phi0),P->e));
+ P->n2= P->k0*P->a*sqrt(1.0-P->es)/(1.0-P->es*sin(P->phi0)*sin(P->phi0));
+ P->XS= 0;/* -P->x0 */
+ P->YS= -1.0*P->n2*P->phic;/* -P->y0 */
+	P->inv= s_inverse;
+	P->fwd= s_forward;
+ /*fprintf(stderr,"a (m) =%16.4f\ne =%16.13f\nl0(rad)=%16.13f\np0(rad)=%16.13f\nk0 =%16.4f\nX0 (m)=%16.4f\nY0 (m)=%16.4f\n\nlC(rad)=%16.13f\npC(rad)=%16.13f\nc =%16.13f\nn1 =%16.13f\nn2 (m) =%16.4f\nXS (m) =%16.4f\nYS (m) =%16.4f\n", P->a, P->e, P->lam0, P->phi0, P->k0, P->x0, P->y0, P->lamc, P->phic, P->c, P->n1, P->n2, P->XS +P->x0, P->YS + P->y0);*/
+ENDENTRY(P)
Added: trunk/toolkits/basemap/src/pj_initcache.c
===================================================================
--- trunk/toolkits/basemap/src/pj_initcache.c	 (rev 0)
+++ trunk/toolkits/basemap/src/pj_initcache.c	2009年11月04日 16:26:37 UTC (rev 7935)
@@ -0,0 +1,181 @@
+/******************************************************************************
+ * $Id: pj_transform.c 1504 2009年01月06日 02:11:57Z warmerdam $
+ *
+ * Project: PROJ.4
+ * Purpose: init file definition cache.
+ * Author: Frank Warmerdam, war...@po...
+ *
+ ******************************************************************************
+ * Copyright (c) 2009, Frank Warmerdam
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+#include <projects.h>
+#include <string.h>
+
+PJ_CVSID("$Id: pj_transform.c 1504 2009年01月06日 02:11:57Z warmerdam $");
+
+static int cache_count = 0;
+static int cache_alloc = 0;
+static char **cache_key = NULL;
+static paralist **cache_paralist = NULL;
+
+/************************************************************************/
+/* pj_clone_paralist() */
+/* */
+/* Allocate a copy of a parameter list. */
+/************************************************************************/
+
+paralist *pj_clone_paralist( const paralist *list)
+{
+ paralist *list_copy = NULL, *next_copy = NULL;
+
+ for( ; list != NULL; list = list->next )
+ {
+ paralist *newitem = (paralist *)
+	pj_malloc(sizeof(paralist) + strlen(list->param));
+
+ newitem->used = 0;
+ newitem->next = 0;
+ strcpy( newitem->param, list->param );
+ 
+ if( list_copy == NULL )
+	list_copy = newitem;
+ else
+	next_copy->next = newitem;
+
+ next_copy = newitem;
+ }
+
+ return list_copy;
+}
+
+/************************************************************************/
+/* pj_clear_initcache() */
+/* */
+/* Clear out all memory held in the init file cache. */
+/************************************************************************/
+
+void pj_clear_initcache()
+{
+ if( cache_alloc > 0 )
+ {
+ int i;
+
+ pj_acquire_lock();
+
+ for( i = 0; i < cache_count; i++ )
+ {
+	paralist *n, *t = cache_paralist[i];
+		
+	pj_dalloc( cache_key[i] );
+
+	/* free parameter list elements */
+	for (; t != NULL; t = n) {
+	 n = t->next;
+	 pj_dalloc(t);
+	}
+ }
+
+ pj_dalloc( cache_key );
+ pj_dalloc( cache_paralist );
+ cache_count = 0;
+ cache_alloc= 0;
+ cache_key = NULL;
+ cache_paralist = NULL;
+
+ pj_release_lock();
+ }
+}
+
+/************************************************************************/
+/* pj_search_initcache() */
+/* */
+/* Search for a matching definition in the init cache. */
+/************************************************************************/
+
+paralist *pj_search_initcache( const char *filekey )
+
+{
+ int i;
+ paralist *result = NULL;
+
+ pj_acquire_lock();
+
+ for( i = 0; result == NULL && i < cache_count; i++)
+ {
+ if( strcmp(filekey,cache_key[i]) == 0 )
+	{
+	 result = pj_clone_paralist( cache_paralist[i] );
+	}
+ }
+
+ pj_release_lock();
+
+ return result;
+}
+
+/************************************************************************/
+/* pj_insert_initcache() */
+/* */
+/* Insert a paralist definition in the init file cache. */
+/************************************************************************/
+
+void pj_insert_initcache( const char *filekey, const paralist *list )
+
+{
+ pj_acquire_lock();
+
+ /* 
+ ** Grow list if required.
+ */
+ if( cache_count == cache_alloc )
+ {
+ char **cache_key_new;
+ paralist **cache_paralist_new;
+
+ cache_alloc = cache_alloc * 2 + 15;
+
+ cache_key_new = (char **) pj_malloc(sizeof(char*) * cache_alloc);
+ memcpy( cache_key, cache_key_new, sizeof(char*) * cache_count);
+ pj_dalloc( cache_key );
+ cache_key = cache_key_new;
+
+ cache_paralist_new = (paralist **) 
+	pj_malloc(sizeof(paralist*) * cache_alloc);
+ memcpy( cache_paralist_new, cache_paralist, 
+	 sizeof(paralist*) * cache_count );
+ pj_dalloc( cache_paralist );
+ cache_paralist = cache_paralist_new;
+ }
+
+ /*
+ ** Duplicate the filekey and paralist, and insert in cache.
+ */
+ cache_key[cache_count] = (char *) pj_malloc(strlen(filekey)+1);
+ strcpy( cache_key[cache_count], filekey );
+
+ cache_paralist[cache_count] = pj_clone_paralist( list );
+
+ cache_count++;
+
+ pj_release_lock();
+}
+
Added: trunk/toolkits/basemap/src/pj_mutex.c
===================================================================
--- trunk/toolkits/basemap/src/pj_mutex.c	 (rev 0)
+++ trunk/toolkits/basemap/src/pj_mutex.c	2009年11月04日 16:26:37 UTC (rev 7935)
@@ -0,0 +1,212 @@
+/******************************************************************************
+ * $Id: pj_transform.c 1504 2009年01月06日 02:11:57Z warmerdam $
+ *
+ * Project: PROJ.4
+ * Purpose: Mutex (thread lock) functions.
+ * Author: Frank Warmerdam, war...@po...
+ *
+ ******************************************************************************
+ * Copyright (c) 2009, Frank Warmerdam
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+
+/* projects.h and windows.h conflict - avoid this! */
+
+#ifndef _WIN32
+#include <projects.h>
+PJ_CVSID("$Id: pj_transform.c 1504 2009年01月06日 02:11:57Z warmerdam $");
+#else
+#include <proj_api.h>
+#endif
+
+#ifdef _WIN32
+# define MUTEX_win32
+#endif
+
+#if !defined(MUTEX_stub) && !defined(MUTEX_pthread) && !defined(MUTEX_win32)
+# define MUTEX_stub
+#endif
+
+static void pj_init_lock();
+
+/************************************************************************/
+/* ==================================================================== */
+/* stub mutex implementation */
+/* ==================================================================== */
+/************************************************************************/
+
+#ifdef MUTEX_stub
+
+/************************************************************************/
+/* pj_acquire_lock() */
+/* */
+/* Acquire the PROJ.4 lock. */
+/************************************************************************/
+
+void pj_acquire_lock()
+{
+}
+
+/************************************************************************/
+/* pj_release_lock() */
+/* */
+/* Release the PROJ.4 lock. */
+/************************************************************************/
+
+void pj_release_lock()
+{
+}
+
+/************************************************************************/
+/* pj_cleanup_lock() */
+/************************************************************************/
+void pj_cleanup_lock()
+{
+}
+
+/************************************************************************/
+/* pj_init_lock() */
+/************************************************************************/
+
+static void pj_init_lock()
+
+{
+}
+
+#endif // def MUTEX_stub
+
+/************************************************************************/
+/* ==================================================================== */
+/* pthread mutex implementation */
+/* ==================================================================== */
+/************************************************************************/
+
+#ifdef MUTEX_pthread
+
+#include "pthread.h"
+
+static pthread_mutex_t core_lock = PTHREAD_MUTEX_INITIALIZER;
+
+/************************************************************************/
+/* pj_acquire_lock() */
+/* */
+/* Acquire the PROJ.4 lock. */
+/************************************************************************/
+
+void pj_acquire_lock()
+{
+ pthread_mutex_lock( &core_lock);
+}
+
+/************************************************************************/
+/* pj_release_lock() */
+/* */
+/* Release the PROJ.4 lock. */
+/************************************************************************/
+
+void pj_release_lock()
+{
+ pthread_mutex_unlock( &core_lock );
+}
+
+/************************************************************************/
+/* pj_cleanup_lock() */
+/************************************************************************/
+void pj_cleanup_lock()
+{
+}
+
+/************************************************************************/
+/* pj_init_lock() */
+/************************************************************************/
+
+static void pj_init_lock()
+
+{
+}
+
+#endif // def MUTEX_pthread
+
+/************************************************************************/
+/* ==================================================================== */
+/* win32 mutex implementation */
+/* ==================================================================== */
+/************************************************************************/
+
+#ifdef MUTEX_win32
+
+#include <windows.h>
+
+static HANDLE mutex_lock = NULL;
+
+/************************************************************************/
+/* pj_acquire_lock() */
+/* */
+/* Acquire the PROJ.4 lock. */
+/************************************************************************/
+
+void pj_acquire_lock()
+{
+ if( mutex_lock == NULL )
+ pj_init_lock();
+
+ WaitForSingleObject( mutex_lock, INFINITE );
+}
+
+/************************************************************************/
+/* pj_release_lock() */
+/* */
+/* Release the PROJ.4 lock. */
+/************************************************************************/
+
+void pj_release_lock()
+{
+ if( mutex_lock == NULL )
+ pj_init_lock();
+
+ ReleaseMutex( mutex_lock );
+}
+
+/************************************************************************/
+/* pj_cleanup_lock() */
+/************************************************************************/
+void pj_cleanup_lock()
+{
+ if( mutex_lock != NULL )
+ {
+ CloseHandle( mutex_lock );
+ mutex_lock = NULL;
+ }
+}
+
+/************************************************************************/
+/* pj_init_lock() */
+/************************************************************************/
+
+static void pj_init_lock()
+
+{
+ if( mutex_lock == NULL )
+ mutex_lock = CreateMutex( NULL, TRUE, NULL );
+}
+
+#endif // def MUTEX_win32
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
From: <js...@us...> - 2010年03月12日 19:28:00
Revision: 8188
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8188&view=rev
Author: jswhit
Date: 2010年03月12日 19:27:47 +0000 (2010年3月12日)
Log Message:
-----------
revert pj_init.c to version in proj4 4.6.1.
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geod.c
 trunk/toolkits/basemap/src/_proj.c
 trunk/toolkits/basemap/src/_pyproj.pxi
 trunk/toolkits/basemap/src/pj_init.c
Modified: trunk/toolkits/basemap/src/_geod.c
===================================================================
--- trunk/toolkits/basemap/src/_geod.c	2010年03月10日 14:14:52 UTC (rev 8187)
+++ trunk/toolkits/basemap/src/_geod.c	2010年03月12日 19:27:47 UTC (rev 8188)
@@ -1,11 +1,12 @@
-/* Generated by Cython 0.11.2 on Wed Nov 4 09:16:32 2009 */
+/* Generated by Cython 0.12.1 on Fri Mar 12 12:24:37 2010 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
 #include "structmember.h"
 #ifndef Py_PYTHON_H
 #error Python headers needed to compile C extensions, please install development version of Python.
-#endif
+#else
+
 #ifndef PY_LONG_LONG
 #define PY_LONG_LONG LONG_LONG
 #endif
@@ -15,7 +16,9 @@
 #if PY_VERSION_HEX < 0x02040000
 #define METH_COEXIST 0
 #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
+ #define PyDict_Contains(d,o) PySequence_Contains(d,o)
 #endif
+
 #if PY_VERSION_HEX < 0x02050000
 typedef int Py_ssize_t;
 #define PY_SSIZE_T_MAX INT_MAX
@@ -25,7 +28,9 @@
 #define PyInt_AsSsize_t(o) PyInt_AsLong(o)
 #define PyNumber_Index(o) PyNumber_Int(o)
 #define PyIndex_Check(o) PyNumber_Check(o)
+ #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
 #endif
+
 #if PY_VERSION_HEX < 0x02060000
 #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
 #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
@@ -35,17 +40,17 @@
 #define PyType_Modified(t)
 
 typedef struct {
- void *buf;
- PyObject *obj;
- Py_ssize_t len;
- Py_ssize_t itemsize;
- int readonly;
- int ndim;
- char *format;
- Py_ssize_t *shape;
- Py_ssize_t *strides;
- Py_ssize_t *suboffsets;
- void *internal;
+ void *buf;
+ PyObject *obj;
+ Py_ssize_t len;
+ Py_ssize_t itemsize;
+ int readonly;
+ int ndim;
+ char *format;
+ Py_ssize_t *shape;
+ Py_ssize_t *strides;
+ Py_ssize_t *suboffsets;
+ void *internal;
 } Py_buffer;
 
 #define PyBUF_SIMPLE 0
@@ -59,22 +64,32 @@
 #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
 
 #endif
+
 #if PY_MAJOR_VERSION < 3
 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
 #else
 #define __Pyx_BUILTIN_MODULE_NAME "builtins"
 #endif
+
 #if PY_MAJOR_VERSION >= 3
 #define Py_TPFLAGS_CHECKTYPES 0
 #define Py_TPFLAGS_HAVE_INDEX 0
 #endif
+
 #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
 #define Py_TPFLAGS_HAVE_NEWBUFFER 0
 #endif
+
 #if PY_MAJOR_VERSION >= 3
 #define PyBaseString_Type PyUnicode_Type
- #define PyString_Type PyBytes_Type
- #define PyString_CheckExact PyBytes_CheckExact
+ #define PyString_Type PyUnicode_Type
+ #define PyString_CheckExact PyUnicode_CheckExact
+#else
+ #define PyBytes_Type PyString_Type
+ #define PyBytes_CheckExact PyString_CheckExact
+#endif
+
+#if PY_MAJOR_VERSION >= 3
 #define PyInt_Type PyLong_Type
 #define PyInt_Check(op) PyLong_Check(op)
 #define PyInt_CheckExact(op) PyLong_CheckExact(op)
@@ -89,13 +104,17 @@
 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
+ #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
 #else
 #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
- #define PyBytes_Type PyString_Type
+ #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
+
 #endif
+
 #if PY_MAJOR_VERSION >= 3
 #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
 #endif
+
 #if !defined(WIN32) && !defined(MS_WINDOWS)
 #ifndef __stdcall
 #define __stdcall
@@ -109,6 +128,7 @@
 #else
 #define _USE_MATH_DEFINES
 #endif
+
 #if PY_VERSION_HEX < 0x02050000
 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n)))
 #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
@@ -118,6 +138,7 @@
 #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
 #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n))
 #endif
+
 #if PY_VERSION_HEX < 0x02050000
 #define __Pyx_NAMESTR(n) ((char *)(n))
 #define __Pyx_DOCSTR(n) ((char *)(n))
@@ -136,24 +157,20 @@
 #include "math.h"
 #include "geodesic.h"
 #include "proj_api.h"
-#define __PYX_USE_C99_COMPLEX defined(_Complex_I)
 
-
-#ifdef __GNUC__
-#define INLINE __inline__
-#elif _WIN32
-#define INLINE __inline
-#else
-#define INLINE 
+#ifndef CYTHON_INLINE
+ #if defined(__GNUC__)
+ #define CYTHON_INLINE __inline__
+ #elif defined(_MSC_VER)
+ #define CYTHON_INLINE __inline
+ #else
+ #define CYTHON_INLINE 
+ #endif
 #endif
 
-typedef struct {PyObject **p; char *s; long n; char is_unicode; char intern; char is_identifier;} __Pyx_StringTabEntry; /*proto*/
+typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
 
 
-
-static int __pyx_skip_dispatch = 0;
-
-
 /* Type Conversion Predeclarations */
 
 #if PY_MAJOR_VERSION < 3
@@ -166,9 +183,12 @@
 #define __Pyx_PyBytes_AsString PyBytes_AsString
 #endif
 
+#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s)
+#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) __Pyx_PyBytes_AsString(s))
+
 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
-static INLINE int __Pyx_PyObject_IsTrue(PyObject*);
-static INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
+static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
+static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
 
 #if !defined(T_PYSSIZET)
 #if PY_VERSION_HEX < 0x02050000
@@ -185,6 +205,40 @@
 #endif
 #endif
 
+
+#if !defined(T_ULONGLONG)
+#define __Pyx_T_UNSIGNED_INT(x) \
+ ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
+ ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
+ ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
+ ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : -1))))
+#else
+#define __Pyx_T_UNSIGNED_INT(x) \
+ ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
+ ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
+ ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
+ ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : \
+ ((sizeof(x) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))))
+#endif
+#if !defined(T_LONGLONG)
+#define __Pyx_T_SIGNED_INT(x) \
+ ((sizeof(x) == sizeof(char)) ? T_BYTE : \
+ ((sizeof(x) == sizeof(short)) ? T_SHORT : \
+ ((sizeof(x) == sizeof(int)) ? T_INT : \
+ ((sizeof(x) == sizeof(long)) ? T_LONG : -1))))
+#else
+#define __Pyx_T_SIGNED_INT(x) \
+ ((sizeof(x) == sizeof(char)) ? T_BYTE : \
+ ((sizeof(x) == sizeof(short)) ? T_SHORT : \
+ ((sizeof(x) == sizeof(int)) ? T_INT : \
+ ((sizeof(x) == sizeof(long)) ? T_LONG : \
+ ((sizeof(x) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))))
+#endif
+
+#define __Pyx_T_FLOATING(x) \
+ ((sizeof(x) == sizeof(float)) ? T_FLOAT : \
+ ((sizeof(x) == sizeof(double)) ? T_DOUBLE : -1))
+
 #if !defined(T_SIZET)
 #if !defined(T_ULONGLONG)
 #define T_SIZET \
@@ -198,9 +252,9 @@
 #endif
 #endif
 
-static INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
-static INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
-static INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
+static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
+static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
+static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
 
 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
 
@@ -222,6 +276,7 @@
 static PyObject *__pyx_m;
 static PyObject *__pyx_b;
 static PyObject *__pyx_empty_tuple;
+static PyObject *__pyx_empty_bytes;
 static int __pyx_lineno;
 static int __pyx_clineno = 0;
 static const char * __pyx_cfilenm= __FILE__;
@@ -229,35 +284,69 @@
 static const char **__pyx_f;
 
 
-#ifdef CYTHON_REFNANNY
-typedef struct {
- void (*INCREF)(void*, PyObject*, int);
- void (*DECREF)(void*, PyObject*, int);
- void (*GOTREF)(void*, PyObject*, int);
- void (*GIVEREF)(void*, PyObject*, int);
- void* (*NewContext)(const char*, int, const char*);
- void (*FinishContext)(void**);
-} __Pyx_RefnannyAPIStruct;
-static __Pyx_RefnannyAPIStruct *__Pyx_Refnanny = NULL;
-#define __Pyx_ImportRefcountAPI(name) (__Pyx_RefnannyAPIStruct *) PyCObject_Import((char *)name, (char *)"RefnannyAPI")
-#define __Pyx_INCREF(r) __Pyx_Refnanny->INCREF(__pyx_refchk, (PyObject *)(r), __LINE__)
-#define __Pyx_DECREF(r) __Pyx_Refnanny->DECREF(__pyx_refchk, (PyObject *)(r), __LINE__)
-#define __Pyx_GOTREF(r) __Pyx_Refnanny->GOTREF(__pyx_refchk, (PyObject *)(r), __LINE__)
-#define __Pyx_GIVEREF(r) __Pyx_Refnanny->GIVEREF(__pyx_refchk, (PyObject *)(r), __LINE__)
-#define __Pyx_XDECREF(r) if((r) == NULL) ; else __Pyx_DECREF(r)
-#define __Pyx_SetupRefcountContext(name) void* __pyx_refchk = __Pyx_Refnanny->NewContext((name), __LINE__, __FILE__)
-#define __Pyx_FinishRefcountContext() __Pyx_Refnanny->FinishContext(&__pyx_refchk)
+/* Type declarations */
+
+/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":5
+ * include "_pyproj.pxi"
+ * 
+ * cdef class Geod: # <<<<<<<<<<<<<<
+ * cdef GEODESIC_T geodesic_t
+ * cdef public object geodstring
+ */
+
+struct __pyx_obj_5_geod_Geod {
+ PyObject_HEAD
+ GEODESIC_T geodesic_t;
+ PyObject *geodstring;
+ PyObject *proj_version;
+ char *geodinitstring;
+};
+
+#ifndef CYTHON_REFNANNY
+ #define CYTHON_REFNANNY 0
+#endif
+
+#if CYTHON_REFNANNY
+ typedef struct {
+ void (*INCREF)(void*, PyObject*, int);
+ void (*DECREF)(void*, PyObject*, int);
+ void (*GOTREF)(void*, PyObject*, int);
+ void (*GIVEREF)(void*, PyObject*, int);
+ void* (*SetupContext)(const char*, int, const char*);
+ void (*FinishContext)(void**);
+ } __Pyx_RefNannyAPIStruct;
+ static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
+ static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI(const char *modname) {
+ PyObject *m = NULL, *p = NULL;
+ void *r = NULL;
+ m = PyImport_ImportModule((char *)modname);
+ if (!m) goto end;
+ p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
+ if (!p) goto end;
+ r = PyLong_AsVoidPtr(p);
+ end:
+ Py_XDECREF(p);
+ Py_XDECREF(m);
+ return (__Pyx_RefNannyAPIStruct *)r;
+ }
+ #define __Pyx_RefNannySetupContext(name) void *__pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
+ #define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
+ #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+ #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+ #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+ #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+ #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r);} } while(0)
 #else
-#define __Pyx_INCREF(r) Py_INCREF(r)
-#define __Pyx_DECREF(r) Py_DECREF(r)
-#define __Pyx_GOTREF(r)
-#define __Pyx_GIVEREF(r)
-#define __Pyx_XDECREF(r) Py_XDECREF(r)
-#define __Pyx_SetupRefcountContext(name)
-#define __Pyx_FinishRefcountContext()
+ #define __Pyx_RefNannySetupContext(name)
+ #define __Pyx_RefNannyFinishContext()
+ #define __Pyx_INCREF(r) Py_INCREF(r)
+ #define __Pyx_DECREF(r) Py_DECREF(r)
+ #define __Pyx_GOTREF(r)
+ #define __Pyx_GIVEREF(r)
+ #define __Pyx_XDECREF(r) Py_XDECREF(r)
 #endif /* CYTHON_REFNANNY */
-#define __Pyx_XGIVEREF(r) if((r) == NULL) ; else __Pyx_GIVEREF(r)
-#define __Pyx_XGOTREF(r) if((r) == NULL) ; else __Pyx_GOTREF(r)
+#define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);} } while(0)
+#define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r);} } while(0)
 
 static void __Pyx_RaiseDoubleKeywordsError(
 const char* func_name, PyObject* kw_name); /*proto*/
@@ -271,150 +360,154 @@
 
 static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
 
+static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
-static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
-static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
 
-static INLINE int __Pyx_StrEq(const char *, const char *); /*proto*/
+static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
 
-static INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
+static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
 
-static INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
+static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *);
 
-static INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
+static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *);
 
-static INLINE char __Pyx_PyInt_AsChar(PyObject *);
+static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *);
 
-static INLINE short __Pyx_PyInt_AsShort(PyObject *);
+static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
 
-static INLINE int __Pyx_PyInt_AsInt(PyObject *);
+static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
 
-static INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
+static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
 
-static INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
+static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
 
-static INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
+static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
 
-static INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
+static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *);
 
-static INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
+static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
 
-static INLINE long __Pyx_PyInt_AsLong(PyObject *);
+static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
 
-static INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
+static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
 
-static INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
-
-static INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
-
 static void __Pyx_AddTraceback(const char *funcname); /*proto*/
 
 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
-
-/* Type declarations */
-
-/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":5
- * include "_pyproj.pxi"
- * 
- * cdef class Geod: # <<<<<<<<<<<<<<
- * cdef GEODESIC_T geodesic_t
- * cdef public object geodstring
- */
-
-struct __pyx_obj_5_geod_Geod {
- PyObject_HEAD
- GEODESIC_T geodesic_t;
- PyObject *geodstring;
- PyObject *proj_version;
- char *geodinitstring;
-};
 /* Module declarations from _geod */
 
 static PyTypeObject *__pyx_ptype_5_geod_Geod = 0;
-static PyObject *__pyx_k_12 = 0;
-static PyObject *__pyx_k_13 = 0;
-static PyObject *__pyx_k_14 = 0;
 #define __Pyx_MODULE_NAME "_geod"
 int __pyx_module_is_main__geod = 0;
 
 /* Implementation of _geod */
-static char __pyx_k_11[] = "1.8.6";
-static char __pyx_k___main__[] = "__main__";
-static PyObject *__pyx_kp___main__;
-static char __pyx_k___cinit__[] = "__cinit__";
-static PyObject *__pyx_kp___cinit__;
-static char __pyx_k___reduce__[] = "__reduce__";
-static PyObject *__pyx_kp___reduce__;
-static char __pyx_k__fwd[] = "_fwd";
-static PyObject *__pyx_kp__fwd;
-static char __pyx_k__inv[] = "_inv";
-static PyObject *__pyx_kp__inv;
-static char __pyx_k__npts[] = "_npts";
-static PyObject *__pyx_kp__npts;
-static char __pyx_k_geodstring[] = "geodstring";
-static PyObject *__pyx_kp_geodstring;
-static char __pyx_k_lons[] = "lons";
-static PyObject *__pyx_kp_lons;
-static char __pyx_k_lats[] = "lats";
-static PyObject *__pyx_kp_lats;
-static char __pyx_k_az[] = "az";
-static PyObject *__pyx_kp_az;
-static char __pyx_k_dist[] = "dist";
-static PyObject *__pyx_kp_dist;
-static char __pyx_k_radians[] = "radians";
-static PyObject *__pyx_kp_radians;
-static char __pyx_k_1[] = "lons1";
-static PyObject *__pyx_kp_1;
-static char __pyx_k_2[] = "lats1";
-static PyObject *__pyx_kp_2;
-static char __pyx_k_3[] = "lons2";
-static PyObject *__pyx_kp_3;
-static char __pyx_k_4[] = "lats2";
-static PyObject *__pyx_kp_4;
-static char __pyx_k_5[] = "lon1";
-static PyObject *__pyx_kp_5;
-static char __pyx_k_6[] = "lat1";
-static PyObject *__pyx_kp_6;
-static char __pyx_k_7[] = "lon2";
-static PyObject *__pyx_kp_7;
-static char __pyx_k_8[] = "lat2";
-static PyObject *__pyx_kp_8;
-static char __pyx_k_npts[] = "npts";
-static PyObject *__pyx_kp_npts;
-static char __pyx_k_math[] = "math";
-static PyObject *__pyx_kp_math;
-static char __pyx_k_9[] = "_dg2rad";
-static PyObject *__pyx_kp_9;
-static char __pyx_k_degrees[] = "degrees";
-static PyObject *__pyx_kp_degrees;
-static char __pyx_k_10[] = "_rad2dg";
-static PyObject *__pyx_kp_10;
-static char __pyx_k__doublesize[] = "_doublesize";
-static PyObject *__pyx_kp__doublesize;
-static char __pyx_k___version__[] = "__version__";
-static PyObject *__pyx_kp___version__;
-static char __pyx_k_RuntimeError[] = "RuntimeError";
-static PyObject *__pyx_kp_RuntimeError;
-static char __pyx_k___class__[] = "__class__";
-static PyObject *__pyx_kp___class__;
-static char __pyx_k_ValueError[] = "ValueError";
-static PyObject *__pyx_kp_ValueError;
-static PyObject *__pyx_kp_11;
 static PyObject *__pyx_builtin_RuntimeError;
 static PyObject *__pyx_builtin_ValueError;
-static PyObject *__pyx_kp_15;
-static PyObject *__pyx_kp_16;
-static char __pyx_k_15[] = "Buffer lengths not the same";
-static char __pyx_k_16[] = "undefined inverse geodesic (may be an antipodal point)";
-static PyObject *__pyx_kp_17;
-static PyObject *__pyx_kp_18;
-static PyObject *__pyx_kp_19;
-static char __pyx_k_17[] = "Buffer lengths not the same";
-static char __pyx_k_18[] = "undefined inverse geodesic (may be an antipodal point)";
-static char __pyx_k_19[] = "undefined inverse geodesic (may be an antipodal point)";
+static char __pyx_k_2[] = "Buffer lengths not the same";
+static char __pyx_k_3[] = "undefined inverse geodesic (may be an antipodal point)";
+static char __pyx_k_6[] = "1.8.7";
+static char __pyx_k_7[] = "Geod.__reduce__ (line 22)";
+static char __pyx_k_8[] = "Geod._fwd (line 26)";
+static char __pyx_k_9[] = "Geod._inv (line 82)";
+static char __pyx_k_10[] = "Geod._npts (line 133)";
+static char __pyx_k__u[] = "u";
+static char __pyx_k__v[] = "v";
+static char __pyx_k__az[] = "az";
+static char __pyx_k__p1[] = "p1";
+static char __pyx_k__p2[] = "p2";
+static char __pyx_k__DIST[] = "DIST";
+static char __pyx_k__Geod[] = "Geod";
+static char __pyx_k___fwd[] = "_fwd";
+static char __pyx_k___inv[] = "_inv";
+static char __pyx_k__dist[] = "dist";
+static char __pyx_k__lat1[] = "lat1";
+static char __pyx_k__lat2[] = "lat2";
+static char __pyx_k__lats[] = "lats";
+static char __pyx_k__lon1[] = "lon1";
+static char __pyx_k__lon2[] = "lon2";
+static char __pyx_k__lons[] = "lons";
+static char __pyx_k__math[] = "math";
+static char __pyx_k__npts[] = "npts";
+static char __pyx_k___npts[] = "_npts";
+static char __pyx_k__lats1[] = "lats1";
+static char __pyx_k__lats2[] = "lats2";
+static char __pyx_k__lons1[] = "lons1";
+static char __pyx_k__lons2[] = "lons2";
+static char __pyx_k__ALPHA12[] = "ALPHA12";
+static char __pyx_k__ALPHA21[] = "ALPHA21";
+static char __pyx_k___dg2rad[] = "_dg2rad";
+static char __pyx_k___rad2dg[] = "_rad2dg";
+static char __pyx_k__degrees[] = "degrees";
+static char __pyx_k__radians[] = "radians";
+static char __pyx_k____main__[] = "__main__";
+static char __pyx_k____test__[] = "__test__";
+static char __pyx_k____class__[] = "__class__";
+static char __pyx_k__ValueError[] = "ValueError";
+static char __pyx_k____reduce__[] = "__reduce__";
+static char __pyx_k__geodesic_t[] = "geodesic_t";
+static char __pyx_k__geodstring[] = "geodstring";
+static char __pyx_k____version__[] = "__version__";
+static char __pyx_k___doublesize[] = "_doublesize";
+static char __pyx_k__RuntimeError[] = "RuntimeError";
+static char __pyx_k__proj_version[] = "proj_version";
+static char __pyx_k__geodinitstring[] = "geodinitstring";
+static PyObject *__pyx_kp_u_10;
+static PyObject *__pyx_kp_s_2;
+static PyObject *__pyx_kp_s_3;
+static PyObject *__pyx_kp_s_6;
+static PyObject *__pyx_kp_u_7;
+static PyObject *__pyx_kp_u_8;
+static PyObject *__pyx_kp_u_9;
+static PyObject *__pyx_n_s__ALPHA12;
+static PyObject *__pyx_n_s__ALPHA21;
+static PyObject *__pyx_n_s__DIST;
+static PyObject *__pyx_n_s__Geod;
+static PyObject *__pyx_n_s__RuntimeError;
+static PyObject *__pyx_n_s__ValueError;
+static PyObject *__pyx_n_s____class__;
+static PyObject *__pyx_n_s____main__;
+static PyObject *__pyx_n_s____reduce__;
+static PyObject *__pyx_n_s____test__;
+static PyObject *__pyx_n_s____version__;
+static PyObject *__pyx_n_s___dg2rad;
+static PyObject *__pyx_n_s___doublesize;
+static PyObject *__pyx_n_s___fwd;
+static PyObject *__pyx_n_s___inv;
+static PyObject *__pyx_n_s___npts;
+static PyObject *__pyx_n_s___rad2dg;
+static PyObject *__pyx_n_s__az;
+static PyObject *__pyx_n_s__degrees;
+static PyObject *__pyx_n_s__dist;
+static PyObject *__pyx_n_s__geodesic_t;
+static PyObject *__pyx_n_s__geodinitstring;
+static PyObject *__pyx_n_s__geodstring;
+static PyObject *__pyx_n_s__lat1;
+static PyObject *__pyx_n_s__lat2;
+static PyObject *__pyx_n_s__lats;
+static PyObject *__pyx_n_s__lats1;
+static PyObject *__pyx_n_s__lats2;
+static PyObject *__pyx_n_s__lon1;
+static PyObject *__pyx_n_s__lon2;
+static PyObject *__pyx_n_s__lons;
+static PyObject *__pyx_n_s__lons1;
+static PyObject *__pyx_n_s__lons2;
+static PyObject *__pyx_n_s__math;
+static PyObject *__pyx_n_s__npts;
+static PyObject *__pyx_n_s__p1;
+static PyObject *__pyx_n_s__p2;
+static PyObject *__pyx_n_s__proj_version;
+static PyObject *__pyx_n_s__radians;
+static PyObject *__pyx_n_s__u;
+static PyObject *__pyx_n_s__v;
+static PyObject *__pyx_k_1;
+static PyObject *__pyx_k_4;
+static PyObject *__pyx_k_5;
 
-/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":11
+/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":11
 * cdef char *geodinitstring
 * 
 * def __new__(self, geodstring): # <<<<<<<<<<<<<<
@@ -430,8 +523,8 @@
 int __pyx_t_1;
 PyObject *__pyx_t_2 = NULL;
 PyObject *__pyx_t_3 = NULL;
- static PyObject **__pyx_pyargnames[] = {&__pyx_kp_geodstring,0};
- __Pyx_SetupRefcountContext("__cinit__");
+ static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__geodstring,0};
+ __Pyx_RefNannySetupContext("__cinit__");
 if (unlikely(__pyx_kwds)) {
 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 PyObject* values[1] = {0};
@@ -442,7 +535,7 @@
 }
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 0:
- values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_geodstring);
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__geodstring);
 if (likely(values[0])) kw_args--;
 else goto __pyx_L5_argtuple_error;
 }
@@ -462,8 +555,10 @@
 __Pyx_AddTraceback("_geod.Geod.__cinit__");
 return -1;
 __pyx_L4_argument_unpacking_done:;
+ __Pyx_INCREF((PyObject *)__pyx_v_self);
+ __Pyx_INCREF(__pyx_v_geodstring);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":14
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":14
 * cdef GEODESIC_T GEOD_T
 * # setup geod initialization string.
 * self.geodstring = geodstring # <<<<<<<<<<<<<<
@@ -476,7 +571,7 @@
 __Pyx_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring = __pyx_v_geodstring;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":15
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":15
 * # setup geod initialization string.
 * self.geodstring = geodstring
 * self.geodinitstring = PyString_AsString(self.geodstring) # <<<<<<<<<<<<<<
@@ -485,7 +580,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodinitstring = PyString_AsString(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":17
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":17
 * self.geodinitstring = PyString_AsString(self.geodstring)
 * # initialize projection
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0] # <<<<<<<<<<<<<<
@@ -494,7 +589,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t = (GEOD_init_plus(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodinitstring, (&__pyx_v_GEOD_T))[0]);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":18
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":18
 * # initialize projection
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0]
 * if pj_errno != 0: # <<<<<<<<<<<<<<
@@ -504,7 +599,7 @@
 __pyx_t_1 = (pj_errno != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":19
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":19
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0]
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
@@ -512,15 +607,15 @@
 * 
 */
 __pyx_t_2 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_3));
- PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
- __Pyx_GIVEREF(__pyx_t_2);
+ __Pyx_GOTREF(__pyx_t_3);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
 __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_Raise(__pyx_t_2, 0, 0);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -528,7 +623,7 @@
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":20
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":20
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno))
 * self.proj_version = PJ_VERSION/100. # <<<<<<<<<<<<<<
@@ -551,11 +646,13 @@
 __Pyx_AddTraceback("_geod.Geod.__cinit__");
 __pyx_r = -1;
 __pyx_L0:;
- __Pyx_FinishRefcountContext();
+ __Pyx_DECREF((PyObject *)__pyx_v_self);
+ __Pyx_DECREF(__pyx_v_geodstring);
+ __Pyx_RefNannyFinishContext();
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":22
+/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":22
 * self.proj_version = PJ_VERSION/100.
 * 
 * def __reduce__(self): # <<<<<<<<<<<<<<
@@ -570,9 +667,9 @@
 PyObject *__pyx_t_1 = NULL;
 PyObject *__pyx_t_2 = NULL;
 PyObject *__pyx_t_3 = NULL;
- __Pyx_SetupRefcountContext("__reduce__");
+ __Pyx_RefNannySetupContext("__reduce__");
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":24
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":24
 * def __reduce__(self):
 * """special method that allows pyproj.Geod instance to be pickled"""
 * return (self.__class__,(self.geodstring,)) # <<<<<<<<<<<<<<
@@ -580,22 +677,22 @@
 * def _fwd(self, object lons, object lats, object az, object dist, radians=False):
 */
 __Pyx_XDECREF(__pyx_r);
- __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_kp___class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_1);
 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+ __Pyx_GOTREF(__pyx_t_2);
 __Pyx_INCREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 PyTuple_SET_ITEM(__pyx_t_2, 0, ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 __Pyx_GIVEREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ __Pyx_GOTREF(__pyx_t_3);
 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
 __Pyx_GIVEREF(__pyx_t_1);
- PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_2));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+ PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
+ __Pyx_GIVEREF(__pyx_t_2);
 __pyx_t_1 = 0;
 __pyx_t_2 = 0;
- __pyx_r = ((PyObject *)__pyx_t_3);
+ __pyx_r = __pyx_t_3;
 __pyx_t_3 = 0;
 goto __pyx_L0;
 
@@ -609,11 +706,11 @@
 __pyx_r = NULL;
 __pyx_L0:;
 __Pyx_XGIVEREF(__pyx_r);
- __Pyx_FinishRefcountContext();
+ __Pyx_RefNannyFinishContext();
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":26
+/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":26
 * return (self.__class__,(self.geodstring,))
 * 
 * def _fwd(self, object lons, object lats, object az, object dist, radians=False): # <<<<<<<<<<<<<<
@@ -644,19 +741,19 @@
 void *__pyx_v_azdat;
 void *__pyx_v_distdat;
 PyObject *__pyx_r = NULL;
- PyObject *__pyx_1 = 0;
 int __pyx_t_1;
 int __pyx_t_2;
 PyObject *__pyx_t_3 = NULL;
 PyObject *__pyx_t_4 = NULL;
- Py_ssize_t __pyx_t_5;
- double __pyx_t_6;
- static PyObject **__pyx_pyargnames[] = {&__pyx_kp_lons,&__pyx_kp_lats,&__pyx_kp_az,&__pyx_kp_dist,&__pyx_kp_radians,0};
- __Pyx_SetupRefcountContext("_fwd");
+ PyObject *__pyx_t_5 = NULL;
+ Py_ssize_t __pyx_t_6;
+ double __pyx_t_7;
+ static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lons,&__pyx_n_s__lats,&__pyx_n_s__az,&__pyx_n_s__dist,&__pyx_n_s__radians,0};
+ __Pyx_RefNannySetupContext("_fwd");
 if (unlikely(__pyx_kwds)) {
 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 PyObject* values[5] = {0,0,0,0,0};
- values[4] = __pyx_k_12;
+ values[4] = __pyx_k_1;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
@@ -668,30 +765,30 @@
 }
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 0:
- values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_lons);
+ values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lons);
 if (likely(values[0])) kw_args--;
 else goto __pyx_L5_argtuple_error;
 case 1:
- values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_lats);
+ values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__lats);
 if (likely(values[1])) kw_args--;
 else {
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 2:
- values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_az);
+ values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__az);
 if (likely(values[2])) kw_args--;
 else {
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 3:
- values[3] = PyDict_GetItem(__pyx_kwds, __pyx_kp_dist);
+ values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__dist);
 if (likely(values[3])) kw_args--;
 else {
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 4:
 if (kw_args > 1) {
- PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_kp_radians);
+ PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__radians);
 if (unlikely(value)) { values[4] = value; kw_args--; }
 }
 }
@@ -704,7 +801,7 @@
 __pyx_v_dist = values[3];
 __pyx_v_radians = values[4];
 } else {
- __pyx_v_radians = __pyx_k_12;
+ __pyx_v_radians = __pyx_k_1;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 5:
 __pyx_v_radians = PyTuple_GET_ITEM(__pyx_args, 4);
@@ -724,8 +821,14 @@
 __Pyx_AddTraceback("_geod.Geod._fwd");
 return NULL;
 __pyx_L4_argument_unpacking_done:;
+ __Pyx_INCREF((PyObject *)__pyx_v_self);
+ __Pyx_INCREF(__pyx_v_lons);
+ __Pyx_INCREF(__pyx_v_lats);
+ __Pyx_INCREF(__pyx_v_az);
+ __Pyx_INCREF(__pyx_v_dist);
+ __Pyx_INCREF(__pyx_v_radians);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":37
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":37
 * cdef void *londata, *latdata, *azdat, *distdat
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenlons) <> 0: # <<<<<<<<<<<<<<
@@ -735,7 +838,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lons, (&__pyx_v_londata), (&__pyx_v_buflenlons)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":38
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":38
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenlons) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -748,7 +851,7 @@
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":39
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":39
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenlons) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0: # <<<<<<<<<<<<<<
@@ -758,7 +861,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lats, (&__pyx_v_latdata), (&__pyx_v_buflenlats)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":40
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":40
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -771,7 +874,7 @@
 }
 __pyx_L7:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":41
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":41
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0: # <<<<<<<<<<<<<<
@@ -781,7 +884,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_az, (&__pyx_v_azdat), (&__pyx_v_buflenaz)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":42
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":42
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -794,7 +897,7 @@
 }
 __pyx_L8:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":43
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":43
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(dist, &distdat, &buflend) <> 0: # <<<<<<<<<<<<<<
@@ -804,7 +907,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_dist, (&__pyx_v_distdat), (&__pyx_v_buflend)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":44
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":44
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(dist, &distdat, &buflend) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -817,7 +920,7 @@
 }
 __pyx_L9:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":46
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":46
 * raise RuntimeError
 * # process data in buffer
 * if not buflenlons == buflenlats == buflenaz == buflend: # <<<<<<<<<<<<<<
@@ -834,7 +937,7 @@
 __pyx_t_2 = (!__pyx_t_1);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":47
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":47
 * # process data in buffer
 * if not buflenlons == buflenlats == buflenaz == buflend:
 * raise RuntimeError("Buffer lengths not the same") # <<<<<<<<<<<<<<
@@ -842,13 +945,13 @@
 * lonsdata = <double *>londata
 */
 __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_3));
- __Pyx_INCREF(__pyx_kp_15);
- PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_15);
- __Pyx_GIVEREF(__pyx_kp_15);
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_2));
+ PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2));
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_Raise(__pyx_t_4, 0, 0);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -856,7 +959,7 @@
 }
 __pyx_L10:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":48
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":48
 * if not buflenlons == buflenlats == buflenaz == buflend:
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenlons/_doublesize # <<<<<<<<<<<<<<
@@ -865,17 +968,17 @@
 */
 __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp__doublesize); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_1);
- __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_5);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
- __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_v_ndim = __pyx_t_5;
+ __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+ __pyx_v_ndim = __pyx_t_6;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":49
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":49
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata # <<<<<<<<<<<<<<
@@ -884,7 +987,7 @@
 */
 __pyx_v_lonsdata = ((double *)__pyx_v_londata);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":50
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":50
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata # <<<<<<<<<<<<<<
@@ -893,7 +996,7 @@
 */
 __pyx_v_latsdata = ((double *)__pyx_v_latdata);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":51
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":51
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 * azdata = <double *>azdat # <<<<<<<<<<<<<<
@@ -902,7 +1005,7 @@
 */
 __pyx_v_azdata = ((double *)__pyx_v_azdat);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":52
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":52
 * latsdata = <double *>latdata
 * azdata = <double *>azdat
 * distdata = <double *>distdat # <<<<<<<<<<<<<<
@@ -911,17 +1014,17 @@
 */
 __pyx_v_distdata = ((double *)__pyx_v_distdat);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":53
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":53
 * azdata = <double *>azdat
 * distdata = <double *>distdat
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
 * if radians:
 * self.geodesic_t.p1.v = lonsdata[i]
 */
- __pyx_t_5 = __pyx_v_ndim;
- for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
+ __pyx_t_6 = __pyx_v_ndim;
+ for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":54
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":54
 * distdata = <double *>distdat
 * for i from 0 <= i < ndim:
 * if radians: # <<<<<<<<<<<<<<
@@ -931,7 +1034,7 @@
 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":55
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":55
 * for i from 0 <= i < ndim:
 * if radians:
 * self.geodesic_t.p1.v = lonsdata[i] # <<<<<<<<<<<<<<
@@ -940,7 +1043,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = (__pyx_v_lonsdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":56
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":56
 * if radians:
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i] # <<<<<<<<<<<<<<
@@ -949,7 +1052,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = (__pyx_v_latsdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":57
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":57
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i]
 * self.geodesic_t.ALPHA12 = azdata[i] # <<<<<<<<<<<<<<
@@ -958,7 +1061,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = (__pyx_v_azdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":58
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":58
 * self.geodesic_t.p1.u = latsdata[i]
 * self.geodesic_t.ALPHA12 = azdata[i]
 * self.geodesic_t.DIST = distdata[i] # <<<<<<<<<<<<<<
@@ -970,64 +1073,64 @@
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":60
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":60
 * self.geodesic_t.DIST = distdata[i]
 * else:
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i] # <<<<<<<<<<<<<<
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 */
- __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_1);
+ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_5);
 __pyx_t_3 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_t_6;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":61
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":61
 * else:
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i] # <<<<<<<<<<<<<<
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i]
 */
- __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_1);
- __pyx_t_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyNumber_Multiply(__pyx_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_5);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = __pyx_t_6;
+ __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":62
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":62
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i] # <<<<<<<<<<<<<<
 * self.geodesic_t.DIST = distdata[i]
 * geod_pre(&self.geodesic_t)
 */
- __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_9); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_1);
+ __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_5);
 __pyx_t_3 = PyFloat_FromDouble((__pyx_v_azdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
+ __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = __pyx_t_6;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":63
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":63
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i] # <<<<<<<<<<<<<<
@@ -1038,7 +1141,7 @@
 }
 __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":64
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":64
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i]
 * geod_pre(&self.geodesic_t) # <<<<<<<<<<<<<<
@@ -1047,7 +1150,7 @@
 */
 geod_pre((&((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t));
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":65
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":65
 * self.geodesic_t.DIST = distdata[i]
 * geod_pre(&self.geodesic_t)
 * if pj_errno != 0: # <<<<<<<<<<<<<<
@@ -1057,7 +1160,7 @@
 __pyx_t_2 = (pj_errno != 0);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":66
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":66
 * geod_pre(&self.geodesic_t)
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
@@ -1065,15 +1168,15 @@
 * if pj_errno != 0:
 */
 __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_3));
- PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
- __Pyx_GIVEREF(__pyx_t_4);
+ __Pyx_GOTREF(__pyx_t_3);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
 __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_Raise(__pyx_t_4, 0, 0);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -1081,7 +1184,7 @@
 }
 __pyx_L14:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":67
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":67
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno))
 * geod_for(&self.geodesic_t) # <<<<<<<<<<<<<<
@@ -1090,7 +1193,7 @@
 */
 geod_for((&((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t));
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":68
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":68
 * raise RuntimeError(pj_strerrno(pj_errno))
 * geod_for(&self.geodesic_t)
 * if pj_errno != 0: # <<<<<<<<<<<<<<
@@ -1100,7 +1203,7 @@
 __pyx_t_2 = (pj_errno != 0);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":69
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":69
 * geod_for(&self.geodesic_t)
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
@@ -1108,15 +1211,15 @@
 * if self.geodesic_t.ALPHA21 != self.geodesic_t.ALPHA21:
 */
 __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_3));
- PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
- __Pyx_GIVEREF(__pyx_t_4);
+ __Pyx_GOTREF(__pyx_t_3);
+ PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
 __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_Raise(__pyx_t_4, 0, 0);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -1124,7 +1227,7 @@
 }
 __pyx_L15:;
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":71
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":71
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # check for NaN.
 * if self.geodesic_t.ALPHA21 != self.geodesic_t.ALPHA21: # <<<<<<<<<<<<<<
@@ -1134,7 +1237,7 @@
 __pyx_t_2 = (((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21 != ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/matplotlib/basemap/src/_geod.pyx":72
+ /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":72
 * # check for NaN.
 * if self.geodesic_t.ALPHA21 != self.geodesic_t.ALPHA21:
 * raise ValueError('undefined inverse geodesic (may be an antipodal point)') # <<<<<<<<<<<<<<
@@ -1142,13 +1245,13 @@
 * lonsdata[i] = self.geodesic_t.p2.v
 */
 __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __Pyx_INCREF(__pyx_kp_16);
- PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_16);
- __Pyx_GIVEREF(__pyx_kp_16);
- __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
...
 
[truncated message content]
From: <js...@us...> - 2010年11月30日 17:48:51
Revision: 8814
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8814&view=rev
Author: jswhit
Date: 2010年11月30日 17:48:42 +0000 (2010年11月30日)
Log Message:
-----------
check inputs for NaN's, if found skip proj4 lib call and return 1.e30
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_proj.c
 trunk/toolkits/basemap/src/_proj.pyx
Modified: trunk/toolkits/basemap/src/_proj.c
===================================================================
--- trunk/toolkits/basemap/src/_proj.c	2010年11月30日 17:37:39 UTC (rev 8813)
+++ trunk/toolkits/basemap/src/_proj.c	2010年11月30日 17:48:42 UTC (rev 8814)
@@ -1,18 +1,39 @@
-/* Generated by Cython 0.12.1 on Fri Mar 12 12:24:31 2010 */
+/* Generated by Cython 0.13 on Tue Nov 30 10:44:02 2010 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
-#include "structmember.h"
 #ifndef Py_PYTHON_H
 #error Python headers needed to compile C extensions, please install development version of Python.
 #else
 
-#ifndef PY_LONG_LONG
- #define PY_LONG_LONG LONG_LONG
+#include <stddef.h> /* For offsetof */
+#ifndef offsetof
+#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
 #endif
+
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+ #ifndef __stdcall
+ #define __stdcall
+ #endif
+ #ifndef __cdecl
+ #define __cdecl
+ #endif
+ #ifndef __fastcall
+ #define __fastcall
+ #endif
+#endif
+
+#ifndef DL_IMPORT
+ #define DL_IMPORT(t) t
+#endif
 #ifndef DL_EXPORT
 #define DL_EXPORT(t) t
 #endif
+
+#ifndef PY_LONG_LONG
+ #define PY_LONG_LONG LONG_LONG
+#endif
+
 #if PY_VERSION_HEX < 0x02040000
 #define METH_COEXIST 0
 #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
@@ -82,13 +103,37 @@
 
 #if PY_MAJOR_VERSION >= 3
 #define PyBaseString_Type PyUnicode_Type
+ #define PyStringObject PyUnicodeObject
 #define PyString_Type PyUnicode_Type
+ #define PyString_Check PyUnicode_Check
 #define PyString_CheckExact PyUnicode_CheckExact
-#else
+#endif
+
+#if PY_VERSION_HEX < 0x02060000
+ #define PyBytesObject PyStringObject
 #define PyBytes_Type PyString_Type
+ #define PyBytes_Check PyString_Check
 #define PyBytes_CheckExact PyString_CheckExact
+ #define PyBytes_FromString PyString_FromString
+ #define PyBytes_FromStringAndSize PyString_FromStringAndSize
+ #define PyBytes_FromFormat PyString_FromFormat
+ #define PyBytes_DecodeEscape PyString_DecodeEscape
+ #define PyBytes_AsString PyString_AsString
+ #define PyBytes_AsStringAndSize PyString_AsStringAndSize
+ #define PyBytes_Size PyString_Size
+ #define PyBytes_AS_STRING PyString_AS_STRING
+ #define PyBytes_GET_SIZE PyString_GET_SIZE
+ #define PyBytes_Repr PyString_Repr
+ #define PyBytes_Concat PyString_Concat
+ #define PyBytes_ConcatAndDel PyString_ConcatAndDel
+ #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type)
+ #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type)
 #endif
 
+#ifndef PySet_CheckExact
+# define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
+#endif
+
 #if PY_MAJOR_VERSION >= 3
 #define PyInt_Type PyLong_Type
 #define PyInt_Check(op) PyLong_Check(op)
@@ -103,32 +148,25 @@
 #define PyInt_AsSsize_t PyLong_AsSsize_t
 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
+#endif
+
+#if PY_MAJOR_VERSION >= 3
+ #define PyBoolObject PyLongObject
+#endif
+
+
+#if PY_MAJOR_VERSION >= 3
 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
 #else
 #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
-
 #endif
 
 #if PY_MAJOR_VERSION >= 3
- #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
+ #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
 #endif
 
-#if !defined(WIN32) && !defined(MS_WINDOWS)
- #ifndef __stdcall
- #define __stdcall
- #endif
- #ifndef __cdecl
- #define __cdecl
- #endif
- #ifndef __fastcall
- #define __fastcall
- #endif
-#else
- #define _USE_MATH_DEFINES
-#endif
-
 #if PY_VERSION_HEX < 0x02050000
 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n)))
 #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
@@ -146,11 +184,16 @@
 #define __Pyx_NAMESTR(n) (n)
 #define __Pyx_DOCSTR(n) (n)
 #endif
+
 #ifdef __cplusplus
 #define __PYX_EXTERN_C extern "C"
 #else
 #define __PYX_EXTERN_C extern
 #endif
+
+#if defined(WIN32) || defined(MS_WINDOWS)
+#define _USE_MATH_DEFINES
+#endif
 #include <math.h>
 #define __PYX_HAVE_API___proj
 #include "stdlib.h"
@@ -158,100 +201,46 @@
 #include "geodesic.h"
 #include "proj_api.h"
 
+/* inline attribute */
 #ifndef CYTHON_INLINE
 #if defined(__GNUC__)
 #define CYTHON_INLINE __inline__
 #elif defined(_MSC_VER)
 #define CYTHON_INLINE __inline
+ #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ #define CYTHON_INLINE inline
 #else
 #define CYTHON_INLINE 
 #endif
 #endif
 
+/* unused attribute */
+#ifndef CYTHON_UNUSED
+# if defined(__GNUC__)
+# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+# define CYTHON_UNUSED __attribute__ ((__unused__)) 
+# else
+# define CYTHON_UNUSED
+# endif
+# elif defined(__ICC) || defined(__INTEL_COMPILER)
+# define CYTHON_UNUSED __attribute__ ((__unused__)) 
+# else
+# define CYTHON_UNUSED 
+# endif
+#endif
+
 typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
 
 
 /* Type Conversion Predeclarations */
 
-#if PY_MAJOR_VERSION < 3
-#define __Pyx_PyBytes_FromString PyString_FromString
-#define __Pyx_PyBytes_FromStringAndSize PyString_FromStringAndSize
-#define __Pyx_PyBytes_AsString PyString_AsString
-#else
-#define __Pyx_PyBytes_FromString PyBytes_FromString
-#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
-#define __Pyx_PyBytes_AsString PyBytes_AsString
-#endif
+#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
+#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s))
 
-#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s)
-#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) __Pyx_PyBytes_AsString(s))
-
 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
 
-#if !defined(T_PYSSIZET)
-#if PY_VERSION_HEX < 0x02050000
-#define T_PYSSIZET T_INT
-#elif !defined(T_LONGLONG)
-#define T_PYSSIZET \
- ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
- ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : -1))
-#else
-#define T_PYSSIZET \
- ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
- ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : \
- ((sizeof(Py_ssize_t) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))
-#endif
-#endif
-
-
-#if !defined(T_ULONGLONG)
-#define __Pyx_T_UNSIGNED_INT(x) \
- ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
- ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
- ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : -1))))
-#else
-#define __Pyx_T_UNSIGNED_INT(x) \
- ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
- ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
- ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : \
- ((sizeof(x) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))))
-#endif
-#if !defined(T_LONGLONG)
-#define __Pyx_T_SIGNED_INT(x) \
- ((sizeof(x) == sizeof(char)) ? T_BYTE : \
- ((sizeof(x) == sizeof(short)) ? T_SHORT : \
- ((sizeof(x) == sizeof(int)) ? T_INT : \
- ((sizeof(x) == sizeof(long)) ? T_LONG : -1))))
-#else
-#define __Pyx_T_SIGNED_INT(x) \
- ((sizeof(x) == sizeof(char)) ? T_BYTE : \
- ((sizeof(x) == sizeof(short)) ? T_SHORT : \
- ((sizeof(x) == sizeof(int)) ? T_INT : \
- ((sizeof(x) == sizeof(long)) ? T_LONG : \
- ((sizeof(x) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))))
-#endif
-
-#define __Pyx_T_FLOATING(x) \
- ((sizeof(x) == sizeof(float)) ? T_FLOAT : \
- ((sizeof(x) == sizeof(double)) ? T_DOUBLE : -1))
-
-#if !defined(T_SIZET)
-#if !defined(T_ULONGLONG)
-#define T_SIZET \
- ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : -1))
-#else
-#define T_SIZET \
- ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : \
- ((sizeof(size_t) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))
-#endif
-#endif
-
 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
@@ -261,7 +250,7 @@
 
 #ifdef __GNUC__
 /* Test for GCC > 2.95 */
-#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) 
+#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) 
 #define likely(x) __builtin_expect(!!(x), 1)
 #define unlikely(x) __builtin_expect(!!(x), 0)
 #else /* __GNUC__ > 2 ... */
@@ -281,9 +270,13 @@
 static int __pyx_clineno = 0;
 static const char * __pyx_cfilenm= __FILE__;
 static const char *__pyx_filename;
-static const char **__pyx_f;
 
 
+static const char *__pyx_f[] = {
+ "_proj.pyx",
+ "_pyproj.pxi",
+};
+
 /* Type declarations */
 
 /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":12
@@ -348,6 +341,8 @@
 #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);} } while(0)
 #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r);} } while(0)
 
+static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+
 static void __Pyx_RaiseDoubleKeywordsError(
 const char* func_name, PyObject* kw_name); /*proto*/
 
@@ -356,15 +351,13 @@
 
 static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/
 
-static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* proto */
-
 static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
 const char *name, int exact); /*proto*/
 
+static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* proto */
+
 static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
 
-static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
-
 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
@@ -388,6 +381,8 @@
 
 static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
 
+static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *);
+
 static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
 
 static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
@@ -413,10 +408,10 @@
 static PyObject *__pyx_builtin_RuntimeError;
 static char __pyx_k_3[] = "Buffer lengths not the same";
 static char __pyx_k_6[] = "x,y and z must be same size";
-static char __pyx_k_7[] = "1.8.7";
+static char __pyx_k_7[] = "1.8.8";
 static char __pyx_k_8[] = "Proj.__reduce__ (line 32)";
 static char __pyx_k_9[] = "Proj._fwd (line 36)";
-static char __pyx_k_10[] = "Proj._inv (line 81)";
+static char __pyx_k_10[] = "Proj._inv (line 85)";
 static char __pyx_k__u[] = "u";
 static char __pyx_k__v[] = "v";
 static char __pyx_k__x[] = "x";
@@ -489,7 +484,6 @@
 static PyObject *__pyx_n_s__v;
 static PyObject *__pyx_n_s__x;
 static PyObject *__pyx_n_s__y;
-static PyObject *__pyx_int_0;
 static PyObject *__pyx_k_1;
 static PyObject *__pyx_k_2;
 static PyObject *__pyx_k_4;
@@ -534,6 +528,114 @@
 return __pyx_r;
 }
 
+/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":14
+ * cdef class Proj:
+ * cdef projPJ projpj
+ * cdef public object proj_version # <<<<<<<<<<<<<<
+ * cdef char *pjinitstring
+ * cdef public object srs
+ */
+
+static PyObject *__pyx_pf_5_proj_4Proj_12proj_version___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_pf_5_proj_4Proj_12proj_version___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r = NULL;
+ __Pyx_RefNannySetupContext("__get__");
+ __Pyx_XDECREF(__pyx_r);
+ __Pyx_INCREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version);
+ __pyx_r = ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+ __pyx_L0:;
+ __Pyx_XGIVEREF(__pyx_r);
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+static int __pyx_pf_5_proj_4Proj_12proj_version___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
+static int __pyx_pf_5_proj_4Proj_12proj_version___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
+ int __pyx_r;
+ __Pyx_RefNannySetupContext("__set__");
+ __Pyx_INCREF(__pyx_v_value);
+ __Pyx_GIVEREF(__pyx_v_value);
+ __Pyx_GOTREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version);
+ __Pyx_DECREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version);
+ ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version = __pyx_v_value;
+
+ __pyx_r = 0;
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+static int __pyx_pf_5_proj_4Proj_12proj_version___del__(PyObject *__pyx_v_self); /*proto*/
+static int __pyx_pf_5_proj_4Proj_12proj_version___del__(PyObject *__pyx_v_self) {
+ int __pyx_r;
+ __Pyx_RefNannySetupContext("__del__");
+ __Pyx_INCREF(Py_None);
+ __Pyx_GIVEREF(Py_None);
+ __Pyx_GOTREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version);
+ __Pyx_DECREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version);
+ ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version = Py_None;
+
+ __pyx_r = 0;
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":16
+ * cdef public object proj_version
+ * cdef char *pjinitstring
+ * cdef public object srs # <<<<<<<<<<<<<<
+ * 
+ * def __new__(self, projstring):
+ */
+
+static PyObject *__pyx_pf_5_proj_4Proj_3srs___get__(PyObject *__pyx_v_self); /*proto*/
+static PyObject *__pyx_pf_5_proj_4Proj_3srs___get__(PyObject *__pyx_v_self) {
+ PyObject *__pyx_r = NULL;
+ __Pyx_RefNannySetupContext("__get__");
+ __Pyx_XDECREF(__pyx_r);
+ __Pyx_INCREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
+ __pyx_r = ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs;
+ goto __pyx_L0;
+
+ __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+ __pyx_L0:;
+ __Pyx_XGIVEREF(__pyx_r);
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+static int __pyx_pf_5_proj_4Proj_3srs___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
+static int __pyx_pf_5_proj_4Proj_3srs___set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
+ int __pyx_r;
+ __Pyx_RefNannySetupContext("__set__");
+ __Pyx_INCREF(__pyx_v_value);
+ __Pyx_GIVEREF(__pyx_v_value);
+ __Pyx_GOTREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
+ __Pyx_DECREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
+ ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs = __pyx_v_value;
+
+ __pyx_r = 0;
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
+static int __pyx_pf_5_proj_4Proj_3srs___del__(PyObject *__pyx_v_self); /*proto*/
+static int __pyx_pf_5_proj_4Proj_3srs___del__(PyObject *__pyx_v_self) {
+ int __pyx_r;
+ __Pyx_RefNannySetupContext("__del__");
+ __Pyx_INCREF(Py_None);
+ __Pyx_GIVEREF(Py_None);
+ __Pyx_GOTREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
+ __Pyx_DECREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
+ ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs = Py_None;
+
+ __pyx_r = 0;
+ __Pyx_RefNannyFinishContext();
+ return __pyx_r;
+}
+
 /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":18
 * cdef public object srs
 * 
@@ -579,10 +681,9 @@
 __Pyx_RaiseArgtupleInvalid("__new__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 __pyx_L3_error:;
 __Pyx_AddTraceback("_proj.Proj.__cinit__");
+ __Pyx_RefNannyFinishContext();
 return -1;
 __pyx_L4_argument_unpacking_done:;
- __Pyx_INCREF((PyObject *)__pyx_v_self);
- __Pyx_INCREF(__pyx_v_projstring);
 
 /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":20
 * def __new__(self, projstring):
@@ -632,7 +733,7 @@
 * self.proj_version = PJ_VERSION/100.
 * 
 */
- __pyx_t_2 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
@@ -656,7 +757,7 @@
 * 
 * def __dealloc__(self):
 */
- __pyx_t_2 = PyFloat_FromDouble((PJ_VERSION / 100.0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyFloat_FromDouble((PJ_VERSION / 100.)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
 __Pyx_GIVEREF(__pyx_t_2);
 __Pyx_GOTREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->proj_version);
@@ -672,8 +773,6 @@
 __Pyx_AddTraceback("_proj.Proj.__cinit__");
 __pyx_r = -1;
 __pyx_L0:;
- __Pyx_DECREF((PyObject *)__pyx_v_self);
- __Pyx_DECREF(__pyx_v_projstring);
 __Pyx_RefNannyFinishContext();
 return __pyx_r;
 }
@@ -687,7 +786,6 @@
 */
 
 static void __pyx_pf_5_proj_4Proj___dealloc__(PyObject *__pyx_v_self); /*proto*/
-static char __pyx_doc_5_proj_4Proj___dealloc__[] = "destroy projection definition";
 static void __pyx_pf_5_proj_4Proj___dealloc__(PyObject *__pyx_v_self) {
 __Pyx_RefNannySetupContext("__dealloc__");
 
@@ -711,9 +809,9 @@
 * return (self.__class__,(self.srs,))
 */
 
-static PyObject *__pyx_pf_5_proj_4Proj___reduce__(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
+static PyObject *__pyx_pf_5_proj_4Proj___reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 static char __pyx_doc_5_proj_4Proj___reduce__[] = "special method that allows pyproj.Proj instance to be pickled";
-static PyObject *__pyx_pf_5_proj_4Proj___reduce__(PyObject *__pyx_v_self, PyObject *unused) {
+static PyObject *__pyx_pf_5_proj_4Proj___reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 PyObject *__pyx_r = NULL;
 PyObject *__pyx_t_1 = NULL;
 PyObject *__pyx_t_2 = NULL;
@@ -792,9 +890,9 @@
 PyObject *__pyx_t_3 = NULL;
 PyObject *__pyx_t_4 = NULL;
 Py_ssize_t __pyx_t_5;
- double __pyx_t_6;
+ int __pyx_t_6;
 int __pyx_t_7;
- int __pyx_t_8;
+ double __pyx_t_8;
 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lons,&__pyx_n_s__lats,&__pyx_n_s__radians,&__pyx_n_s__errcheck,0};
 __Pyx_RefNannySetupContext("_fwd");
 if (unlikely(__pyx_kwds)) {
@@ -822,14 +920,14 @@
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 2:
- if (kw_args > 1) {
+ if (kw_args > 0) {
 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__radians);
- if (unlikely(value)) { values[2] = value; kw_args--; }
+ if (value) { values[2] = value; kw_args--; }
 }
 case 3:
- if (kw_args > 1) {
+ if (kw_args > 0) {
 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errcheck);
- if (unlikely(value)) { values[3] = value; kw_args--; }
+ if (value) { values[3] = value; kw_args--; }
 }
 }
 if (unlikely(kw_args > 0)) {
@@ -859,13 +957,9 @@
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 __pyx_L3_error:;
 __Pyx_AddTraceback("_proj.Proj._fwd");
+ __Pyx_RefNannyFinishContext();
 return NULL;
 __pyx_L4_argument_unpacking_done:;
- __Pyx_INCREF((PyObject *)__pyx_v_self);
- __Pyx_INCREF(__pyx_v_lons);
- __Pyx_INCREF(__pyx_v_lats);
- __Pyx_INCREF(__pyx_v_radians);
- __Pyx_INCREF(__pyx_v_errcheck);
 
 /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":50
 * cdef void *londata, *latdata
@@ -978,7 +1072,7 @@
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata # <<<<<<<<<<<<<<
 * for i from 0 <= i < ndim:
- * if radians:
+ * # if inputs are nan's, return big number.
 */
 __pyx_v_latsdata = ((double *)__pyx_v_latdata);
 
@@ -986,24 +1080,62 @@
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
- * if radians:
- * projlonlatin.u = lonsdata[i]
+ * # if inputs are nan's, return big number.
+ * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]:
 */
 __pyx_t_5 = __pyx_v_ndim;
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":61
- * latsdata = <double *>latdata
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":62
 * for i from 0 <= i < ndim:
+ * # if inputs are nan's, return big number.
+ * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]: # <<<<<<<<<<<<<<
+ * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ * continue
+ */
+ __pyx_t_1 = ((__pyx_v_lonsdata[__pyx_v_i]) != (__pyx_v_lonsdata[__pyx_v_i]));
+ if (!__pyx_t_1) {
+ __pyx_t_6 = ((__pyx_v_latsdata[__pyx_v_i]) != (__pyx_v_latsdata[__pyx_v_i]));
+ __pyx_t_7 = __pyx_t_6;
+ } else {
+ __pyx_t_7 = __pyx_t_1;
+ }
+ if (__pyx_t_7) {
+
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":63
+ * # if inputs are nan's, return big number.
+ * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]:
+ * lonsdata[i]=1.e30; latsdata[i]=1.e30 # <<<<<<<<<<<<<<
+ * continue
+ * if radians:
+ */
+ (__pyx_v_lonsdata[__pyx_v_i]) = 1.e30;
+ (__pyx_v_latsdata[__pyx_v_i]) = 1.e30;
+
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":64
+ * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]:
+ * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ * continue # <<<<<<<<<<<<<<
+ * if radians:
+ * projlonlatin.u = lonsdata[i]
+ */
+ goto __pyx_L9_continue;
+ goto __pyx_L11;
+ }
+ __pyx_L11:;
+
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":65
+ * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ * continue
 * if radians: # <<<<<<<<<<<<<<
 * projlonlatin.u = lonsdata[i]
 * projlonlatin.v = latsdata[i]
 */
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_t_1) {
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":62
- * for i from 0 <= i < ndim:
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":66
+ * continue
 * if radians:
 * projlonlatin.u = lonsdata[i] # <<<<<<<<<<<<<<
 * projlonlatin.v = latsdata[i]
@@ -1011,7 +1143,7 @@
 */
 __pyx_v_projlonlatin.u = (__pyx_v_lonsdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":63
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":67
 * if radians:
 * projlonlatin.u = lonsdata[i]
 * projlonlatin.v = latsdata[i] # <<<<<<<<<<<<<<
@@ -1019,51 +1151,51 @@
 * projlonlatin.u = _dg2rad*lonsdata[i]
 */
 __pyx_v_projlonlatin.v = (__pyx_v_latsdata[__pyx_v_i]);
- goto __pyx_L11;
+ goto __pyx_L12;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":65
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":69
 * projlonlatin.v = latsdata[i]
 * else:
 * projlonlatin.u = _dg2rad*lonsdata[i] # <<<<<<<<<<<<<<
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 */
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_v_projlonlatin.u = __pyx_t_6;
+ __pyx_v_projlonlatin.u = __pyx_t_8;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":66
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":70
 * else:
 * projlonlatin.u = _dg2rad*lonsdata[i]
 * projlonlatin.v = _dg2rad*latsdata[i] # <<<<<<<<<<<<<<
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0:
 */
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __pyx_v_projlonlatin.v = __pyx_t_6;
+ __pyx_v_projlonlatin.v = __pyx_t_8;
 }
- __pyx_L11:;
+ __pyx_L12:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":67
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":71
 * projlonlatin.u = _dg2rad*lonsdata[i]
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj) # <<<<<<<<<<<<<<
@@ -1072,69 +1204,69 @@
 */
 __pyx_v_projxyout = pj_fwd(__pyx_v_projlonlatin, ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":68
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":72
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0: # <<<<<<<<<<<<<<
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # since HUGE_VAL can be 'inf',
 */
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_t_1) {
- __pyx_t_7 = (pj_errno != 0);
- __pyx_t_8 = __pyx_t_7;
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+ __pyx_t_1 = (pj_errno != 0);
+ __pyx_t_6 = __pyx_t_1;
 } else {
- __pyx_t_8 = __pyx_t_1;
+ __pyx_t_6 = __pyx_t_7;
 }
- if (__pyx_t_8) {
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":69
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":73
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 */
- __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4));
 __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
 __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 __Pyx_Raise(__pyx_t_4, 0, 0);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- goto __pyx_L12;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L13;
 }
- __pyx_L12:;
+ __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":72
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":76
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 * if projxyout.u == HUGE_VAL: # <<<<<<<<<<<<<<
 * lonsdata[i] = 1.e30
 * else:
 */
- __pyx_t_8 = (__pyx_v_projxyout.u == HUGE_VAL);
- if (__pyx_t_8) {
+ __pyx_t_6 = (__pyx_v_projxyout.u == HUGE_VAL);
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":73
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":77
 * # change it to a real (but very large) number.
 * if projxyout.u == HUGE_VAL:
 * lonsdata[i] = 1.e30 # <<<<<<<<<<<<<<
 * else:
 * lonsdata[i] = projxyout.u
 */
- (__pyx_v_lonsdata[__pyx_v_i]) = 1e+30;
- goto __pyx_L13;
+ (__pyx_v_lonsdata[__pyx_v_i]) = 1.e30;
+ goto __pyx_L14;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":75
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":79
 * lonsdata[i] = 1.e30
 * else:
 * lonsdata[i] = projxyout.u # <<<<<<<<<<<<<<
@@ -1143,31 +1275,31 @@
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_v_projxyout.u;
 }
- __pyx_L13:;
+ __pyx_L14:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":76
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":80
 * else:
 * lonsdata[i] = projxyout.u
 * if projxyout.v == HUGE_VAL: # <<<<<<<<<<<<<<
 * latsdata[i] = 1.e30
 * else:
 */
- __pyx_t_8 = (__pyx_v_projxyout.v == HUGE_VAL);
- if (__pyx_t_8) {
+ __pyx_t_6 = (__pyx_v_projxyout.v == HUGE_VAL);
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":77
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":81
 * lonsdata[i] = projxyout.u
 * if projxyout.v == HUGE_VAL:
 * latsdata[i] = 1.e30 # <<<<<<<<<<<<<<
 * else:
 * latsdata[i] = projxyout.v
 */
- (__pyx_v_latsdata[__pyx_v_i]) = 1e+30;
- goto __pyx_L14;
+ (__pyx_v_latsdata[__pyx_v_i]) = 1.e30;
+ goto __pyx_L15;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":79
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":83
 * latsdata[i] = 1.e30
 * else:
 * latsdata[i] = projxyout.v # <<<<<<<<<<<<<<
@@ -1176,7 +1308,8 @@
 */
 (__pyx_v_latsdata[__pyx_v_i]) = __pyx_v_projxyout.v;
 }
- __pyx_L14:;
+ __pyx_L15:;
+ __pyx_L9_continue:;
 }
 
 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -1188,17 +1321,12 @@
 __Pyx_AddTraceback("_proj.Proj._fwd");
 __pyx_r = NULL;
 __pyx_L0:;
- __Pyx_DECREF((PyObject *)__pyx_v_self);
- __Pyx_DECREF(__pyx_v_lons);
- __Pyx_DECREF(__pyx_v_lats);
- __Pyx_DECREF(__pyx_v_radians);
- __Pyx_DECREF(__pyx_v_errcheck);
 __Pyx_XGIVEREF(__pyx_r);
 __Pyx_RefNannyFinishContext();
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":81
+/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":85
 * latsdata[i] = projxyout.v
 * 
 * def _inv(self, object x, object y, radians=False, errcheck=False): # <<<<<<<<<<<<<<
@@ -1256,21 +1384,21 @@
 values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
 if (likely(values[1])) kw_args--;
 else {
- __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 2:
- if (kw_args > 1) {
+ if (kw_args > 0) {
 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__radians);
- if (unlikely(value)) { values[2] = value; kw_args--; }
+ if (value) { values[2] = value; kw_args--; }
 }
 case 3:
- if (kw_args > 1) {
+ if (kw_args > 0) {
 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__errcheck);
- if (unlikely(value)) { values[3] = value; kw_args--; }
+ if (value) { values[3] = value; kw_args--; }
 }
 }
 if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 __pyx_v_x = values[0];
 __pyx_v_y = values[1];
@@ -1293,18 +1421,14 @@
 }
 goto __pyx_L4_argument_unpacking_done;
 __pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 __pyx_L3_error:;
 __Pyx_AddTraceback("_proj.Proj._inv");
+ __Pyx_RefNannyFinishContext();
 return NULL;
 __pyx_L4_argument_unpacking_done:;
- __Pyx_INCREF((PyObject *)__pyx_v_self);
- __Pyx_INCREF(__pyx_v_x);
- __Pyx_INCREF(__pyx_v_y);
- __Pyx_INCREF(__pyx_v_radians);
- __Pyx_INCREF(__pyx_v_errcheck);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":95
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":99
 * cdef double *xdatab, *ydatab
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0: # <<<<<<<<<<<<<<
@@ -1314,7 +1438,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_x, (&__pyx_v_xdata), (&__pyx_v_buflenx)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":96
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":100
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1322,12 +1446,12 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L6;
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":97
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":101
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(y, &ydata, &bufleny) <> 0: # <<<<<<<<<<<<<<
@@ -1337,7 +1461,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_y, (&__pyx_v_ydata), (&__pyx_v_bufleny)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":98
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":102
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(y, &ydata, &bufleny) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1345,12 +1469,12 @@
 * # (for numpy/regular python arrays).
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L7;
 }
 __pyx_L7:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":101
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":105
 * # process data in buffer
 * # (for numpy/regular python arrays).
 * if buflenx != bufleny: # <<<<<<<<<<<<<<
@@ -1360,48 +1484,48 @@
 __pyx_t_1 = (__pyx_v_buflenx != __pyx_v_bufleny);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":102
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":106
 * # (for numpy/regular python arrays).
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same") # <<<<<<<<<<<<<<
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata
 */
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
 __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_3));
 __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3));
- __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 __Pyx_Raise(__pyx_t_3, 0, 0);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L8;
 }
 __pyx_L8:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":103
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":107
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize # <<<<<<<<<<<<<<
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata
 */
- __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_buflenx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_buflenx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __pyx_v_ndim = __pyx_t_5;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":104
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":108
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata # <<<<<<<<<<<<<<
@@ -1410,36 +1534,74 @@
 */
 __pyx_v_xdatab = ((double *)__pyx_v_xdata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":105
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":109
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata # <<<<<<<<<<<<<<
 * for i from 0 <= i < ndim:
- * projxyin.u = xdatab[i]
+ * # if inputs are nan's, return big number.
 */
 __pyx_v_ydatab = ((double *)__pyx_v_ydata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":106
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":110
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
- * projxyin.u = xdatab[i]
- * projxyin.v = ydatab[i]
+ * # if inputs are nan's, return big number.
+ * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]:
 */
 __pyx_t_5 = __pyx_v_ndim;
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":107
- * ydatab = <double *>ydata
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":112
 * for i from 0 <= i < ndim:
+ * # if inputs are nan's, return big number.
+ * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]: # <<<<<<<<<<<<<<
+ * xdatab[i]=1.e30; ydatab[i]=1.e30
+ * continue
+ */
+ __pyx_t_1 = ((__pyx_v_xdatab[__pyx_v_i]) != (__pyx_v_xdatab[__pyx_v_i]));
+ if (!__pyx_t_1) {
+ __pyx_t_6 = ((__pyx_v_ydatab[__pyx_v_i]) != (__pyx_v_ydatab[__pyx_v_i]));
+ __pyx_t_7 = __pyx_t_6;
+ } else {
+ __pyx_t_7 = __pyx_t_1;
+ }
+ if (__pyx_t_7) {
+
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":113
+ * # if inputs are nan's, return big number.
+ * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]:
+ * xdatab[i]=1.e30; ydatab[i]=1.e30 # <<<<<<<<<<<<<<
+ * continue
+ * projxyin.u = xdatab[i]
+ */
+ (__pyx_v_xdatab[__pyx_v_i]) = 1.e30;
+ (__pyx_v_ydatab[__pyx_v_i]) = 1.e30;
+
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":114
+ * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]:
+ * xdatab[i]=1.e30; ydatab[i]=1.e30
+ * continue # <<<<<<<<<<<<<<
+ * projxyin.u = xdatab[i]
+ * projxyin.v = ydatab[i]
+ */
+ goto __pyx_L9_continue;
+ goto __pyx_L11;
+ }
+ __pyx_L11:;
+
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":115
+ * xdatab[i]=1.e30; ydatab[i]=1.e30
+ * continue
 * projxyin.u = xdatab[i] # <<<<<<<<<<<<<<
 * projxyin.v = ydatab[i]
 * projlonlatout = pj_inv(projxyin,self.projpj)
 */
 __pyx_v_projxyin.u = (__pyx_v_xdatab[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":108
- * for i from 0 <= i < ndim:
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":116
+ * continue
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i] # <<<<<<<<<<<<<<
 * projlonlatout = pj_inv(projxyin,self.projpj)
@@ -1447,7 +1609,7 @@
 */
 __pyx_v_projxyin.v = (__pyx_v_ydatab[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":109
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":117
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i]
 * projlonlatout = pj_inv(projxyin,self.projpj) # <<<<<<<<<<<<<<
@@ -1456,78 +1618,78 @@
 */
 __pyx_v_projlonlatout = pj_inv(__pyx_v_projxyin, ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":110
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":118
 * projxyin.v = ydatab[i]
 * projlonlatout = pj_inv(projxyin,self.projpj)
 * if errcheck and pj_errno != 0: # <<<<<<<<<<<<<<
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # since HUGE_VAL can be 'inf',
 */
- __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_t_1) {
- __pyx_t_6 = (pj_errno != 0);
- __pyx_t_7 = __pyx_t_6;
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+ __pyx_t_1 = (pj_errno != 0);
+ __pyx_t_6 = __pyx_t_1;
 } else {
- __pyx_t_7 = __pyx_t_1;
+ __pyx_t_6 = __pyx_t_7;
 }
- if (__pyx_t_7) {
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":111
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":119
 * projlonlatout = pj_inv(projxyin,self.projpj)
 * if errcheck and pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 */
- __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4));
 __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
 __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 __Pyx_Raise(__pyx_t_4, 0, 0);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- goto __pyx_L11;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L12;
 }
- __pyx_L11:;
+ __pyx_L12:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":114
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":122
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 * if projlonlatout.u == HUGE_VAL: # <<<<<<<<<<<<<<
 * xdatab[i] = 1.e30
 * elif radians:
 */
- __pyx_t_7 = (__pyx_v_projlonlatout.u == HUGE_VAL);
- if (__pyx_t_7) {
+ __pyx_t_6 = (__pyx_v_projlonlatout.u == HUGE_VAL);
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":115
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":123
 * # change it to a real (but very large) number.
 * if projlonlatout.u == HUGE_VAL:
 * xdatab[i] = 1.e30 # <<<<<<<<<<<<<<
 * elif radians:
 * xdatab[i] = projlonlatout.u
 */
- (__pyx_v_xdatab[__pyx_v_i]) = 1e+30;
- goto __pyx_L12;
+ (__pyx_v_xdatab[__pyx_v_i]) = 1.e30;
+ goto __pyx_L13;
 }
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":116
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":124
 * if projlonlatout.u == HUGE_VAL:
 * xdatab[i] = 1.e30
 * elif radians: # <<<<<<<<<<<<<<
 * xdatab[i] = projlonlatout.u
 * else:
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_t_7) {
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":117
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":125
 * xdatab[i] = 1.e30
 * elif radians:
 * xdatab[i] = projlonlatout.u # <<<<<<<<<<<<<<
@@ -1535,63 +1697,63 @@
 * xdatab[i] = _rad2dg*projlonlatout.u
 */
 (__pyx_v_xdatab[__pyx_v_i]) = __pyx_v_projlonlatout.u;
- goto __pyx_L12;
+ goto __pyx_L13;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":119
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":127
 * xdatab[i] = projlonlatout.u
 * else:
 * xdatab[i] = _rad2dg*projlonlatout.u # <<<<<<<<<<<<<<
 * if projlonlatout.v == HUGE_VAL:
 * ydatab[i] = 1.e30
 */
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___rad2dg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___rad2dg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = PyFloat_FromDouble(__pyx_v_projlonlatout.u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyFloat_FromDouble(__pyx_v_projlonlatout.u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 (__pyx_v_xdatab[__pyx_v_i]) = __pyx_t_8;
 }
- __pyx_L12:;
+ __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":120
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":128
 * else:
 * xdatab[i] = _rad2dg*projlonlatout.u
 * if projlonlatout.v == HUGE_VAL: # <<<<<<<<<<<<<<
 * ydatab[i] = 1.e30
 * elif radians:
 */
- __pyx_t_7 = (__pyx_v_projlonlatout.v == HUGE_VAL);
- if (__pyx_t_7) {
+ __pyx_t_6 = (__pyx_v_projlonlatout.v == HUGE_VAL);
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":121
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":129
 * xdatab[i] = _rad2dg*projlonlatout.u
 * if projlonlatout.v == HUGE_VAL:
 * ydatab[i] = 1.e30 # <<<<<<<<<<<<<<
 * elif radians:
 * ydatab[i] = projlonlatout.v
 */
- (__pyx_v_ydatab[__pyx_v_i]) = 1e+30;
- goto __pyx_L13;
+ (__pyx_v_ydatab[__pyx_v_i]) = 1.e30;
+ goto __pyx_L14;
 }
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":122
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":130
 * if projlonlatout.v == HUGE_VAL:
 * ydatab[i] = 1.e30
 * elif radians: # <<<<<<<<<<<<<<
 * ydatab[i] = projlonlatout.v
 * else:
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_t_7) {
+ __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":123
+ /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":131
 * ydatab[i] = 1.e30
 * elif radians:
 * ydatab[i] = projlonlatout.v # <<<<<<<<<<<...
 
[truncated message content]
From: <js...@us...> - 2010年12月30日 13:09:14
Revision: 8867
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8867&view=rev
Author: jswhit
Date: 2010年12月30日 13:09:06 +0000 (2010年12月30日)
Log Message:
-----------
add more checks for undefined projection values.
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_proj.c
 trunk/toolkits/basemap/src/_proj.pyx
Modified: trunk/toolkits/basemap/src/_proj.c
===================================================================
--- trunk/toolkits/basemap/src/_proj.c	2010年12月30日 12:57:05 UTC (rev 8866)
+++ trunk/toolkits/basemap/src/_proj.c	2010年12月30日 13:09:06 UTC (rev 8867)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.13 on Tue Nov 30 10:44:02 2010 */
+/* Generated by Cython 0.13 on Thu Dec 30 06:06:48 2010 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
@@ -279,7 +279,7 @@
 
 /* Type declarations */
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":12
+/* "/Users/jsw/python/basemap/src/_proj.pyx":12
 * pj_set_searchpath(1, &searchpath)
 * 
 * cdef class Proj: # <<<<<<<<<<<<<<
@@ -407,11 +407,12 @@
 /* Implementation of _proj */
 static PyObject *__pyx_builtin_RuntimeError;
 static char __pyx_k_3[] = "Buffer lengths not the same";
-static char __pyx_k_6[] = "x,y and z must be same size";
-static char __pyx_k_7[] = "1.8.8";
-static char __pyx_k_8[] = "Proj.__reduce__ (line 32)";
-static char __pyx_k_9[] = "Proj._fwd (line 36)";
-static char __pyx_k_10[] = "Proj._inv (line 85)";
+static char __pyx_k_4[] = "projection undefined";
+static char __pyx_k_7[] = "x,y and z must be same size";
+static char __pyx_k_8[] = "1.8.7";
+static char __pyx_k_9[] = "Proj.__reduce__ (line 32)";
+static char __pyx_k_10[] = "Proj._fwd (line 36)";
+static char __pyx_k_11[] = "Proj._inv (line 94)";
 static char __pyx_k__u[] = "u";
 static char __pyx_k__v[] = "v";
 static char __pyx_k__x[] = "x";
@@ -446,10 +447,11 @@
 static char __pyx_k__pjinitstring[] = "pjinitstring";
 static char __pyx_k__proj_version[] = "proj_version";
 static PyObject *__pyx_kp_u_10;
+static PyObject *__pyx_kp_u_11;
 static PyObject *__pyx_kp_s_3;
-static PyObject *__pyx_kp_s_6;
+static PyObject *__pyx_kp_s_4;
 static PyObject *__pyx_kp_s_7;
-static PyObject *__pyx_kp_u_8;
+static PyObject *__pyx_kp_s_8;
 static PyObject *__pyx_kp_u_9;
 static PyObject *__pyx_n_s__Proj;
 static PyObject *__pyx_n_s__RuntimeError;
@@ -486,10 +488,10 @@
 static PyObject *__pyx_n_s__y;
 static PyObject *__pyx_k_1;
 static PyObject *__pyx_k_2;
-static PyObject *__pyx_k_4;
 static PyObject *__pyx_k_5;
+static PyObject *__pyx_k_6;
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":7
+/* "/Users/jsw/python/basemap/src/_proj.pyx":7
 * #c_numpy.import_array()
 * 
 * def set_datapath(datapath): # <<<<<<<<<<<<<<
@@ -504,7 +506,7 @@
 __Pyx_RefNannySetupContext("set_datapath");
 __pyx_self = __pyx_self;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":9
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":9
 * def set_datapath(datapath):
 * cdef char *searchpath
 * searchpath = PyString_AsString(datapath) # <<<<<<<<<<<<<<
@@ -513,7 +515,7 @@
 */
 __pyx_v_searchpath = PyString_AsString(__pyx_v_datapath);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":10
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":10
 * cdef char *searchpath
 * searchpath = PyString_AsString(datapath)
 * pj_set_searchpath(1, &searchpath) # <<<<<<<<<<<<<<
@@ -528,7 +530,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":14
+/* "/Users/jsw/python/basemap/src/_proj.pyx":14
 * cdef class Proj:
 * cdef projPJ projpj
 * cdef public object proj_version # <<<<<<<<<<<<<<
@@ -582,7 +584,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":16
+/* "/Users/jsw/python/basemap/src/_proj.pyx":16
 * cdef public object proj_version
 * cdef char *pjinitstring
 * cdef public object srs # <<<<<<<<<<<<<<
@@ -636,7 +638,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":18
+/* "/Users/jsw/python/basemap/src/_proj.pyx":18
 * cdef public object srs
 * 
 * def __new__(self, projstring): # <<<<<<<<<<<<<<
@@ -685,7 +687,7 @@
 return -1;
 __pyx_L4_argument_unpacking_done:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":20
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":20
 * def __new__(self, projstring):
 * # setup proj initialization string.
 * self.srs = projstring # <<<<<<<<<<<<<<
@@ -698,7 +700,7 @@
 __Pyx_DECREF(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
 ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs = __pyx_v_projstring;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":21
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":21
 * # setup proj initialization string.
 * self.srs = projstring
 * self.pjinitstring = PyString_AsString(self.srs) # <<<<<<<<<<<<<<
@@ -707,7 +709,7 @@
 */
 ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->pjinitstring = PyString_AsString(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->srs);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":23
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":23
 * self.pjinitstring = PyString_AsString(self.srs)
 * # initialize projection
 * self.projpj = pj_init_plus(self.pjinitstring) # <<<<<<<<<<<<<<
@@ -716,7 +718,7 @@
 */
 ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj = pj_init_plus(((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->pjinitstring);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":24
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":24
 * # initialize projection
 * self.projpj = pj_init_plus(self.pjinitstring)
 * if pj_errno != 0: # <<<<<<<<<<<<<<
@@ -726,7 +728,7 @@
 __pyx_t_1 = (pj_errno != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":25
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":25
 * self.projpj = pj_init_plus(self.pjinitstring)
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
@@ -750,7 +752,7 @@
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":26
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":26
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno))
 * self.proj_version = PJ_VERSION/100. # <<<<<<<<<<<<<<
@@ -777,7 +779,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":28
+/* "/Users/jsw/python/basemap/src/_proj.pyx":28
 * self.proj_version = PJ_VERSION/100.
 * 
 * def __dealloc__(self): # <<<<<<<<<<<<<<
@@ -789,7 +791,7 @@
 static void __pyx_pf_5_proj_4Proj___dealloc__(PyObject *__pyx_v_self) {
 __Pyx_RefNannySetupContext("__dealloc__");
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":30
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":30
 * def __dealloc__(self):
 * """destroy projection definition"""
 * pj_free(self.projpj) # <<<<<<<<<<<<<<
@@ -801,7 +803,7 @@
 __Pyx_RefNannyFinishContext();
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":32
+/* "/Users/jsw/python/basemap/src/_proj.pyx":32
 * pj_free(self.projpj)
 * 
 * def __reduce__(self): # <<<<<<<<<<<<<<
@@ -818,7 +820,7 @@
 PyObject *__pyx_t_3 = NULL;
 __Pyx_RefNannySetupContext("__reduce__");
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":34
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":34
 * def __reduce__(self):
 * """special method that allows pyproj.Proj instance to be pickled"""
 * return (self.__class__,(self.srs,)) # <<<<<<<<<<<<<<
@@ -859,7 +861,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":36
+/* "/Users/jsw/python/basemap/src/_proj.pyx":36
 * return (self.__class__,(self.srs,))
 * 
 * def _fwd(self, object lons, object lats, radians=False, errcheck=False): # <<<<<<<<<<<<<<
@@ -961,7 +963,7 @@
 return NULL;
 __pyx_L4_argument_unpacking_done:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":50
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":50
 * cdef void *londata, *latdata
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenx) <> 0: # <<<<<<<<<<<<<<
@@ -971,7 +973,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lons, (&__pyx_v_londata), (&__pyx_v_buflenx)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":51
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":51
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenx) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -984,7 +986,7 @@
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":52
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":52
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenx) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &bufleny) <> 0: # <<<<<<<<<<<<<<
@@ -994,7 +996,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lats, (&__pyx_v_latdata), (&__pyx_v_bufleny)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":53
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":53
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &bufleny) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1007,7 +1009,7 @@
 }
 __pyx_L7:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":55
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":55
 * raise RuntimeError
 * # process data in buffer
 * if buflenx != bufleny: # <<<<<<<<<<<<<<
@@ -1017,7 +1019,7 @@
 __pyx_t_1 = (__pyx_v_buflenx != __pyx_v_bufleny);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":56
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":56
 * # process data in buffer
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same") # <<<<<<<<<<<<<<
@@ -1039,7 +1041,7 @@
 }
 __pyx_L8:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":57
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":57
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize # <<<<<<<<<<<<<<
@@ -1058,7 +1060,7 @@
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __pyx_v_ndim = __pyx_t_5;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":58
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":58
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize
 * lonsdata = <double *>londata # <<<<<<<<<<<<<<
@@ -1067,7 +1069,7 @@
 */
 __pyx_v_lonsdata = ((double *)__pyx_v_londata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":59
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":59
 * ndim = buflenx/_doublesize
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata # <<<<<<<<<<<<<<
@@ -1076,7 +1078,7 @@
 */
 __pyx_v_latsdata = ((double *)__pyx_v_latdata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":60
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":60
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
@@ -1086,12 +1088,12 @@
 __pyx_t_5 = __pyx_v_ndim;
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":62
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":62
 * for i from 0 <= i < ndim:
 * # if inputs are nan's, return big number.
 * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]: # <<<<<<<<<<<<<<
 * lonsdata[i]=1.e30; latsdata[i]=1.e30
- * continue
+ * if errcheck:
 */
 __pyx_t_1 = ((__pyx_v_lonsdata[__pyx_v_i]) != (__pyx_v_lonsdata[__pyx_v_i]));
 if (!__pyx_t_1) {
@@ -1102,19 +1104,51 @@
 }
 if (__pyx_t_7) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":63
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":63
 * # if inputs are nan's, return big number.
 * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]:
 * lonsdata[i]=1.e30; latsdata[i]=1.e30 # <<<<<<<<<<<<<<
- * continue
- * if radians:
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = 1.e30;
 (__pyx_v_latsdata[__pyx_v_i]) = 1.e30;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":64
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":64
 * if lonsdata[i] != lonsdata[i] or latsdata[i] != latsdata[i]:
 * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
+ * continue
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":65
+ * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * continue
+ * if radians:
+ */
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L12;
+ }
+ __pyx_L12:;
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":66
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * continue # <<<<<<<<<<<<<<
 * if radians:
 * projlonlatin.u = lonsdata[i]
@@ -1124,17 +1158,17 @@
 }
 __pyx_L11:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":65
- * lonsdata[i]=1.e30; latsdata[i]=1.e30
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":67
+ * raise RuntimeError('projection undefined')
 * continue
 * if radians: # <<<<<<<<<<<<<<
 * projlonlatin.u = lonsdata[i]
 * projlonlatin.v = latsdata[i]
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_7) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":66
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":68
 * continue
 * if radians:
 * projlonlatin.u = lonsdata[i] # <<<<<<<<<<<<<<
@@ -1143,7 +1177,7 @@
 */
 __pyx_v_projlonlatin.u = (__pyx_v_lonsdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":67
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":69
 * if radians:
 * projlonlatin.u = lonsdata[i]
 * projlonlatin.v = latsdata[i] # <<<<<<<<<<<<<<
@@ -1151,51 +1185,51 @@
 * projlonlatin.u = _dg2rad*lonsdata[i]
 */
 __pyx_v_projlonlatin.v = (__pyx_v_latsdata[__pyx_v_i]);
- goto __pyx_L12;
+ goto __pyx_L13;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":69
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":71
 * projlonlatin.v = latsdata[i]
 * else:
 * projlonlatin.u = _dg2rad*lonsdata[i] # <<<<<<<<<<<<<<
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 */
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __pyx_v_projlonlatin.u = __pyx_t_8;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":70
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":72
 * else:
 * projlonlatin.u = _dg2rad*lonsdata[i]
 * projlonlatin.v = _dg2rad*latsdata[i] # <<<<<<<<<<<<<<
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0:
 */
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __pyx_v_projlonlatin.v = __pyx_t_8;
 }
- __pyx_L12:;
+ __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":71
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":73
 * projlonlatin.u = _dg2rad*lonsdata[i]
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj) # <<<<<<<<<<<<<<
@@ -1204,14 +1238,14 @@
 */
 __pyx_v_projxyout = pj_fwd(__pyx_v_projlonlatin, ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":72
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":74
 * projlonlatin.v = _dg2rad*latsdata[i]
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0: # <<<<<<<<<<<<<<
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # since HUGE_VAL can be 'inf',
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_7) {
 __pyx_t_1 = (pj_errno != 0);
 __pyx_t_6 = __pyx_t_1;
@@ -1220,86 +1254,178 @@
 }
 if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":73
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":75
 * projxyout = pj_fwd(projlonlatin,self.projpj)
 * if errcheck and pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 */
- __pyx_t_4 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+ __pyx_t_2 = 0;
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
- __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __Pyx_Raise(__pyx_t_4, 0, 0);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- goto __pyx_L13;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L14;
 }
- __pyx_L13:;
+ __pyx_L14:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":76
- * # since HUGE_VAL can be 'inf',
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":79
 * # change it to a real (but very large) number.
- * if projxyout.u == HUGE_VAL: # <<<<<<<<<<<<<<
+ * # also check for NaNs.
+ * if projxyout.u == HUGE_VAL or\ # <<<<<<<<<<<<<<
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ */
+ __pyx_t_6 = (__pyx_v_projxyout.u == HUGE_VAL);
+ if (!__pyx_t_6) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":80
+ * # also check for NaNs.
+ * if projxyout.u == HUGE_VAL or\
+ * projxyout.u != projxyout.u: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_7 = (__pyx_v_projxyout.u != __pyx_v_projxyout.u);
+ __pyx_t_1 = __pyx_t_7;
+ } else {
+ __pyx_t_1 = __pyx_t_6;
+ }
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":81
+ * if projxyout.u == HUGE_VAL or\
+ * projxyout.u != projxyout.u:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * lonsdata[i] = 1.e30
+ */
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":82
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * lonsdata[i] = 1.e30
 * else:
 */
- __pyx_t_6 = (__pyx_v_projxyout.u == HUGE_VAL);
- if (__pyx_t_6) {
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L16;
+ }
+ __pyx_L16:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":77
- * # change it to a real (but very large) number.
- * if projxyout.u == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":83
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * lonsdata[i] = 1.e30 # <<<<<<<<<<<<<<
 * else:
 * lonsdata[i] = projxyout.u
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = 1.e30;
- goto __pyx_L14;
+ goto __pyx_L15;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":79
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":85
 * lonsdata[i] = 1.e30
 * else:
 * lonsdata[i] = projxyout.u # <<<<<<<<<<<<<<
- * if projxyout.v == HUGE_VAL:
- * latsdata[i] = 1.e30
+ * if projxyout.v == HUGE_VAL or\
+ * projxyout.u != projxyout.u:
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_v_projxyout.u;
 }
- __pyx_L14:;
+ __pyx_L15:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":80
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":86
 * else:
 * lonsdata[i] = projxyout.u
- * if projxyout.v == HUGE_VAL: # <<<<<<<<<<<<<<
+ * if projxyout.v == HUGE_VAL or\ # <<<<<<<<<<<<<<
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ */
+ __pyx_t_1 = (__pyx_v_projxyout.v == HUGE_VAL);
+ if (!__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":87
+ * lonsdata[i] = projxyout.u
+ * if projxyout.v == HUGE_VAL or\
+ * projxyout.u != projxyout.u: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_6 = (__pyx_v_projxyout.u != __pyx_v_projxyout.u);
+ __pyx_t_7 = __pyx_t_6;
+ } else {
+ __pyx_t_7 = __pyx_t_1;
+ }
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":88
+ * if projxyout.v == HUGE_VAL or\
+ * projxyout.u != projxyout.u:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * latsdata[i] = 1.e30
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":89
+ * projxyout.u != projxyout.u:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * latsdata[i] = 1.e30
 * else:
 */
- __pyx_t_6 = (__pyx_v_projxyout.v == HUGE_VAL);
- if (__pyx_t_6) {
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L18;
+ }
+ __pyx_L18:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":81
- * lonsdata[i] = projxyout.u
- * if projxyout.v == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":90
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * latsdata[i] = 1.e30 # <<<<<<<<<<<<<<
 * else:
 * latsdata[i] = projxyout.v
 */
 (__pyx_v_latsdata[__pyx_v_i]) = 1.e30;
- goto __pyx_L15;
+ goto __pyx_L17;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":83
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":92
 * latsdata[i] = 1.e30
 * else:
 * latsdata[i] = projxyout.v # <<<<<<<<<<<<<<
@@ -1308,7 +1434,7 @@
 */
 (__pyx_v_latsdata[__pyx_v_i]) = __pyx_v_projxyout.v;
 }
- __pyx_L15:;
+ __pyx_L17:;
 __pyx_L9_continue:;
 }
 
@@ -1326,7 +1452,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":85
+/* "/Users/jsw/python/basemap/src/_proj.pyx":94
 * latsdata[i] = projxyout.v
 * 
 * def _inv(self, object x, object y, radians=False, errcheck=False): # <<<<<<<<<<<<<<
@@ -1365,8 +1491,8 @@
 if (unlikely(__pyx_kwds)) {
 Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
 PyObject* values[4] = {0,0,0,0};
- values[2] = __pyx_k_4;
- values[3] = __pyx_k_5;
+ values[2] = __pyx_k_5;
+ values[3] = __pyx_k_6;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
@@ -1384,7 +1510,7 @@
 values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__y);
 if (likely(values[1])) kw_args--;
 else {
- __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 2:
 if (kw_args > 0) {
@@ -1398,15 +1524,15 @@
 }
 }
 if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "_inv") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 __pyx_v_x = values[0];
 __pyx_v_y = values[1];
 __pyx_v_radians = values[2];
 __pyx_v_errcheck = values[3];
 } else {
- __pyx_v_radians = __pyx_k_4;
- __pyx_v_errcheck = __pyx_k_5;
+ __pyx_v_radians = __pyx_k_5;
+ __pyx_v_errcheck = __pyx_k_6;
 switch (PyTuple_GET_SIZE(__pyx_args)) {
 case 4:
 __pyx_v_errcheck = PyTuple_GET_ITEM(__pyx_args, 3);
@@ -1421,14 +1547,14 @@
 }
 goto __pyx_L4_argument_unpacking_done;
 __pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("_inv", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 __pyx_L3_error:;
 __Pyx_AddTraceback("_proj.Proj._inv");
 __Pyx_RefNannyFinishContext();
 return NULL;
 __pyx_L4_argument_unpacking_done:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":99
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":108
 * cdef double *xdatab, *ydatab
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0: # <<<<<<<<<<<<<<
@@ -1438,7 +1564,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_x, (&__pyx_v_xdata), (&__pyx_v_buflenx)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":100
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":109
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1446,12 +1572,12 @@
 * raise RuntimeError
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L6;
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":101
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":110
 * if PyObject_AsWriteBuffer(x, &xdata, &buflenx) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(y, &ydata, &bufleny) <> 0: # <<<<<<<<<<<<<<
@@ -1461,7 +1587,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_y, (&__pyx_v_ydata), (&__pyx_v_bufleny)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":102
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":111
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(y, &ydata, &bufleny) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -1469,12 +1595,12 @@
 * # (for numpy/regular python arrays).
 */
 __Pyx_Raise(__pyx_builtin_RuntimeError, 0, 0);
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L7;
 }
 __pyx_L7:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":105
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":114
 * # process data in buffer
 * # (for numpy/regular python arrays).
 * if buflenx != bufleny: # <<<<<<<<<<<<<<
@@ -1484,48 +1610,48 @@
 __pyx_t_1 = (__pyx_v_buflenx != __pyx_v_bufleny);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":106
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":115
 * # (for numpy/regular python arrays).
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same") # <<<<<<<<<<<<<<
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata
 */
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
 __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
 PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_3));
 __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3));
- __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 __Pyx_Raise(__pyx_t_3, 0, 0);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L8;
 }
 __pyx_L8:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":107
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":116
 * if buflenx != bufleny:
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize # <<<<<<<<<<<<<<
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata
 */
- __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_buflenx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_buflenx); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __pyx_v_ndim = __pyx_t_5;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":108
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":117
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata # <<<<<<<<<<<<<<
@@ -1534,7 +1660,7 @@
 */
 __pyx_v_xdatab = ((double *)__pyx_v_xdata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":109
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":118
 * ndim = buflenx/_doublesize
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata # <<<<<<<<<<<<<<
@@ -1543,7 +1669,7 @@
 */
 __pyx_v_ydatab = ((double *)__pyx_v_ydata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":110
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":119
 * xdatab = <double *>xdata
 * ydatab = <double *>ydata
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
@@ -1553,12 +1679,12 @@
 __pyx_t_5 = __pyx_v_ndim;
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":112
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":121
 * for i from 0 <= i < ndim:
 * # if inputs are nan's, return big number.
 * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]: # <<<<<<<<<<<<<<
 * xdatab[i]=1.e30; ydatab[i]=1.e30
- * continue
+ * if errcheck:
 */
 __pyx_t_1 = ((__pyx_v_xdatab[__pyx_v_i]) != (__pyx_v_xdatab[__pyx_v_i]));
 if (!__pyx_t_1) {
@@ -1569,19 +1695,51 @@
 }
 if (__pyx_t_7) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":113
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":122
 * # if inputs are nan's, return big number.
 * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]:
 * xdatab[i]=1.e30; ydatab[i]=1.e30 # <<<<<<<<<<<<<<
- * continue
- * projxyin.u = xdatab[i]
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 */
 (__pyx_v_xdatab[__pyx_v_i]) = 1.e30;
 (__pyx_v_ydatab[__pyx_v_i]) = 1.e30;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":114
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":123
 * if xdatab[i] != xdatab[i] or ydatab[i] != ydatab[i]:
 * xdatab[i]=1.e30; ydatab[i]=1.e30
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
+ * continue
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":124
+ * xdatab[i]=1.e30; ydatab[i]=1.e30
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * continue
+ * projxyin.u = xdatab[i]
+ */
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L12;
+ }
+ __pyx_L12:;
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":125
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * continue # <<<<<<<<<<<<<<
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i]
@@ -1591,8 +1749,8 @@
 }
 __pyx_L11:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":115
- * xdatab[i]=1.e30; ydatab[i]=1.e30
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":126
+ * raise RuntimeError('projection undefined')
 * continue
 * projxyin.u = xdatab[i] # <<<<<<<<<<<<<<
 * projxyin.v = ydatab[i]
@@ -1600,7 +1758,7 @@
 */
 __pyx_v_projxyin.u = (__pyx_v_xdatab[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":116
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":127
 * continue
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i] # <<<<<<<<<<<<<<
@@ -1609,7 +1767,7 @@
 */
 __pyx_v_projxyin.v = (__pyx_v_ydatab[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":117
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":128
 * projxyin.u = xdatab[i]
 * projxyin.v = ydatab[i]
 * projlonlatout = pj_inv(projxyin,self.projpj) # <<<<<<<<<<<<<<
@@ -1618,14 +1776,14 @@
 */
 __pyx_v_projlonlatout = pj_inv(__pyx_v_projxyin, ((struct __pyx_obj_5_proj_Proj *)__pyx_v_self)->projpj);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":118
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":129
 * projxyin.v = ydatab[i]
 * projlonlatout = pj_inv(projxyin,self.projpj)
 * if errcheck and pj_errno != 0: # <<<<<<<<<<<<<<
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # since HUGE_VAL can be 'inf',
 */
- __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_7) {
 __pyx_t_1 = (pj_errno != 0);
 __pyx_t_6 = __pyx_t_1;
@@ -1634,62 +1792,108 @@
 }
 if (__pyx_t_6) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":119
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":130
 * projlonlatout = pj_inv(projxyin,self.projpj)
 * if errcheck and pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * # since HUGE_VAL can be 'inf',
 * # change it to a real (but very large) number.
 */
- __pyx_t_4 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+ __pyx_t_2 = 0;
+ __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_4));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
- __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_2, 0, 0);
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __Pyx_Raise(__pyx_t_4, 0, 0);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- goto __pyx_L12;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L13;
 }
- __pyx_L12:;
+ __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":122
- * # since HUGE_VAL can be 'inf',
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":134
 * # change it to a real (but very large) number.
- * if projlonlatout.u == HUGE_VAL: # <<<<<<<<<<<<<<
+ * # also check for NaNs.
+ * if projlonlatout.u == HUGE_VAL or \ # <<<<<<<<<<<<<<
+ * projlonlatout.u != projlonlatout.u:
+ * if errcheck:
+ */
+ __pyx_t_6 = (__pyx_v_projlonlatout.u == HUGE_VAL);
+ if (!__pyx_t_6) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":135
+ * # also check for NaNs.
+ * if projlonlatout.u == HUGE_VAL or \
+ * projlonlatout.u != projlonlatout.u: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_7 = (__pyx_v_projlonlatout.u != __pyx_v_projlonlatout.u);
+ __pyx_t_1 = __pyx_t_7;
+ } else {
+ __pyx_t_1 = __pyx_t_6;
+ }
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":136
+ * if projlonlatout.u == HUGE_VAL or \
+ * projlonlatout.u != projlonlatout.u:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * xdatab[i] = 1.e30
+ */
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":137
+ * projlonlatout.u != projlonlatout.u:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * xdatab[i] = 1.e30
 * elif radians:
 */
- __pyx_t_6 = (__pyx_v_projlonlatout.u == HUGE_VAL);
- if (__pyx_t_6) {
+ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_INCREF(((PyObject *)__pyx_kp_s_4));
+ PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_4));
+ __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_4));
+ __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __Pyx_Raise(__pyx_t_4, 0, 0);
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ goto __pyx_L15;
+ }
+ __pyx_L15:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":123
- * # change it to a real (but very large) number.
- * if projlonlatout.u == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":138
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
 * xdatab[i] = 1.e30 # <<<<<<<<<<<<<<
 * elif radians:
 * xdatab[i] = projlonlatout.u
 */
 (__pyx_v_xdatab[__pyx_v_i]) = 1.e30;
- goto __pyx_L13;
+ goto __pyx_L14;
 }
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":124
- * if projlonlatout.u == HUGE_VAL:
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":139
+ * raise RuntimeError('projection undefined')
 * xdatab[i] = 1.e30
 * elif radians: # <<<<<<<<<<<<<<
 * xdatab[i] = projlonlatout.u
 * else:
 */
- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- if (__pyx_t_6) {
+ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":125
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":140
 * xdatab[i] = 1.e30
 * elif radians:
 * xdatab[i] = projlonlatout.u # <<<<<<<<<<<<<<
@@ -1697,63 +1901,109 @@
 * xdatab[i] = _rad2dg*projlonlatout.u
 */
 (__pyx_v_xdatab[__pyx_v_i]) = __pyx_v_projlonlatout.u;
- goto __pyx_L13;
+ goto __pyx_L14;
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":127
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":142
 * xdatab[i] = projlonlatout.u
 * else:
 * xdatab[i] = _rad2dg*projlonlatout.u # <<<<<<<<<<<<<<
- * if projlonlatout.v == HUGE_VAL:
- * ydatab[i] = 1.e30
+ * if projlonlatout.v == HUGE_VAL or \
+ * projlonlatout.v != projlonlatout.v:
 */
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___rad2dg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___rad2dg); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_2 = PyFloat_FromDouble(__pyx_v_projlonlatout.u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_2 = PyFloat_FromDouble(__pyx_v_projlonlatout.u); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_2);
- __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
- __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 (__pyx_v_xdatab[__pyx_v_i]) = __pyx_t_8;
 }
- __pyx_L13:;
+ __pyx_L14:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_proj.pyx":128
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":143
 * else:
 * xdatab[i] = _rad2dg*projlonlatout.u
- * if projlonlatout.v == HUGE_VAL: # <<<<<<<<<<<<<<
+ * if projlonlatout.v == HUGE_VAL or \ # <<<<<<<<<<<<<<
+ * projlonlatout.v != projlonlatout.v:
+ * if errcheck:
+ */
+ __pyx_t_1 = (__pyx_v_projlonlatout.v == HUGE_VAL);
+ if (!__pyx_t_1) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":144
+ * xdatab[i] = _rad2dg*projlonlatout.u
+ * if projlonlatout.v == HUGE_VAL or \
+ * projlonlatout.v != projlonlatout.v: # <<<<<<<<<<<<<<
+ * if errcheck:
+ * raise RuntimeError('projection undefined')
+ */
+ __pyx_t_6 = (__pyx_v_projlonlatout.v != __pyx_v_projlonlatout.v);
+ __pyx_t_7 = __pyx_t_6;
+ } else {
+ __pyx_t_7 = __pyx_t_1;
+ }
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":145
+ * if projlonlatout.v == HUGE_VAL or \
+ * projlonlatout.v != projlonlatout.v:
+ * if errcheck: # <<<<<<<<<<<<<<
+ * raise RuntimeError('projection undefined')
 * ydatab[i] = 1.e30
+ */
+ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_errcheck); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ if (__pyx_t_7) {
+
+ /* "/Users/jsw/python/basemap/src/_proj.pyx":146
+ * projlonlatout.v != projlonlatout.v:
+ * if errcheck:
+ * raise RuntimeError('projection undefined') # <<<<<<<<<<<<<<
+ * ydatab[i] = 1.e30
 * elif radians:
 */
- __pyx_t_6 = (__p...
 
[truncated message content]
From: <js...@us...> - 2011年02月08日 13:14:08
Revision: 8961
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8961&view=rev
Author: jswhit
Date: 2011年02月08日 13:14:00 +0000 (2011年2月08日)
Log Message:
-----------
regenerate C source with Cython 0.14.1
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geod.c
 trunk/toolkits/basemap/src/_geoslib.c
 trunk/toolkits/basemap/src/_proj.c
Modified: trunk/toolkits/basemap/src/_geod.c
===================================================================
--- trunk/toolkits/basemap/src/_geod.c	2011年02月08日 13:01:46 UTC (rev 8960)
+++ trunk/toolkits/basemap/src/_geod.c	2011年02月08日 13:14:00 UTC (rev 8961)
@@ -1,18 +1,39 @@
-/* Generated by Cython 0.12.1 on Fri Mar 12 12:24:37 2010 */
+/* Generated by Cython 0.14.1 on Tue Feb 8 06:06:19 2011 */
 
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
-#include "structmember.h"
 #ifndef Py_PYTHON_H
 #error Python headers needed to compile C extensions, please install development version of Python.
 #else
 
-#ifndef PY_LONG_LONG
- #define PY_LONG_LONG LONG_LONG
+#include <stddef.h> /* For offsetof */
+#ifndef offsetof
+#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
 #endif
+
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+ #ifndef __stdcall
+ #define __stdcall
+ #endif
+ #ifndef __cdecl
+ #define __cdecl
+ #endif
+ #ifndef __fastcall
+ #define __fastcall
+ #endif
+#endif
+
+#ifndef DL_IMPORT
+ #define DL_IMPORT(t) t
+#endif
 #ifndef DL_EXPORT
 #define DL_EXPORT(t) t
 #endif
+
+#ifndef PY_LONG_LONG
+ #define PY_LONG_LONG LONG_LONG
+#endif
+
 #if PY_VERSION_HEX < 0x02040000
 #define METH_COEXIST 0
 #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
@@ -82,14 +103,43 @@
 
 #if PY_MAJOR_VERSION >= 3
 #define PyBaseString_Type PyUnicode_Type
+ #define PyStringObject PyUnicodeObject
 #define PyString_Type PyUnicode_Type
+ #define PyString_Check PyUnicode_Check
 #define PyString_CheckExact PyUnicode_CheckExact
-#else
+#endif
+
+#if PY_VERSION_HEX < 0x02060000
+ #define PyBytesObject PyStringObject
 #define PyBytes_Type PyString_Type
+ #define PyBytes_Check PyString_Check
 #define PyBytes_CheckExact PyString_CheckExact
+ #define PyBytes_FromString PyString_FromString
+ #define PyBytes_FromStringAndSize PyString_FromStringAndSize
+ #define PyBytes_FromFormat PyString_FromFormat
+ #define PyBytes_DecodeEscape PyString_DecodeEscape
+ #define PyBytes_AsString PyString_AsString
+ #define PyBytes_AsStringAndSize PyString_AsStringAndSize
+ #define PyBytes_Size PyString_Size
+ #define PyBytes_AS_STRING PyString_AS_STRING
+ #define PyBytes_GET_SIZE PyString_GET_SIZE
+ #define PyBytes_Repr PyString_Repr
+ #define PyBytes_Concat PyString_Concat
+ #define PyBytes_ConcatAndDel PyString_ConcatAndDel
 #endif
 
+#if PY_VERSION_HEX < 0x02060000
+ #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type)
+ #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type)
+#endif
+#ifndef PySet_CheckExact
+ #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
+#endif
+
+#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
+
 #if PY_MAJOR_VERSION >= 3
+ #define PyIntObject PyLongObject
 #define PyInt_Type PyLong_Type
 #define PyInt_Check(op) PyLong_Check(op)
 #define PyInt_CheckExact(op) PyLong_CheckExact(op)
@@ -103,32 +153,44 @@
 #define PyInt_AsSsize_t PyLong_AsSsize_t
 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
+#endif
+
+#if PY_MAJOR_VERSION >= 3
+ #define PyBoolObject PyLongObject
+#endif
+
+
+#if PY_MAJOR_VERSION >= 3
 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
 #else
 #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
+#endif
 
+#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
+ #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
+ #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
+ #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
+#else
+ #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
+ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
+ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
+ (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
+ #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
+ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
+ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
+ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
+ #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
+ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
+ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
+ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
 #endif
 
 #if PY_MAJOR_VERSION >= 3
- #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
+ #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
 #endif
 
-#if !defined(WIN32) && !defined(MS_WINDOWS)
- #ifndef __stdcall
- #define __stdcall
- #endif
- #ifndef __cdecl
- #define __cdecl
- #endif
- #ifndef __fastcall
- #define __fastcall
- #endif
-#else
- #define _USE_MATH_DEFINES
-#endif
-
 #if PY_VERSION_HEX < 0x02050000
 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n)))
 #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
@@ -146,11 +208,16 @@
 #define __Pyx_NAMESTR(n) (n)
 #define __Pyx_DOCSTR(n) (n)
 #endif
+
 #ifdef __cplusplus
 #define __PYX_EXTERN_C extern "C"
 #else
 #define __PYX_EXTERN_C extern
 #endif
+
+#if defined(WIN32) || defined(MS_WINDOWS)
+#define _USE_MATH_DEFINES
+#endif
 #include <math.h>
 #define __PYX_HAVE_API___geod
 #include "stdlib.h"
@@ -158,100 +225,51 @@
 #include "geodesic.h"
 #include "proj_api.h"
 
+#ifdef PYREX_WITHOUT_ASSERTIONS
+#define CYTHON_WITHOUT_ASSERTIONS
+#endif
+
+
+/* inline attribute */
 #ifndef CYTHON_INLINE
 #if defined(__GNUC__)
 #define CYTHON_INLINE __inline__
 #elif defined(_MSC_VER)
 #define CYTHON_INLINE __inline
+ #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+ #define CYTHON_INLINE inline
 #else
- #define CYTHON_INLINE 
+ #define CYTHON_INLINE
 #endif
 #endif
 
+/* unused attribute */
+#ifndef CYTHON_UNUSED
+# if defined(__GNUC__)
+# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+# define CYTHON_UNUSED __attribute__ ((__unused__))
+# else
+# define CYTHON_UNUSED
+# endif
+# elif defined(__ICC) || defined(__INTEL_COMPILER)
+# define CYTHON_UNUSED __attribute__ ((__unused__))
+# else
+# define CYTHON_UNUSED
+# endif
+#endif
+
 typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
 
 
 /* Type Conversion Predeclarations */
 
-#if PY_MAJOR_VERSION < 3
-#define __Pyx_PyBytes_FromString PyString_FromString
-#define __Pyx_PyBytes_FromStringAndSize PyString_FromStringAndSize
-#define __Pyx_PyBytes_AsString PyString_AsString
-#else
-#define __Pyx_PyBytes_FromString PyBytes_FromString
-#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
-#define __Pyx_PyBytes_AsString PyBytes_AsString
-#endif
+#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
+#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s))
 
-#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s)
-#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) __Pyx_PyBytes_AsString(s))
-
 #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
 static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
 
-#if !defined(T_PYSSIZET)
-#if PY_VERSION_HEX < 0x02050000
-#define T_PYSSIZET T_INT
-#elif !defined(T_LONGLONG)
-#define T_PYSSIZET \
- ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
- ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : -1))
-#else
-#define T_PYSSIZET \
- ((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
- ((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : \
- ((sizeof(Py_ssize_t) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))
-#endif
-#endif
-
-
-#if !defined(T_ULONGLONG)
-#define __Pyx_T_UNSIGNED_INT(x) \
- ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
- ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
- ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : -1))))
-#else
-#define __Pyx_T_UNSIGNED_INT(x) \
- ((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
- ((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
- ((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : \
- ((sizeof(x) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))))
-#endif
-#if !defined(T_LONGLONG)
-#define __Pyx_T_SIGNED_INT(x) \
- ((sizeof(x) == sizeof(char)) ? T_BYTE : \
- ((sizeof(x) == sizeof(short)) ? T_SHORT : \
- ((sizeof(x) == sizeof(int)) ? T_INT : \
- ((sizeof(x) == sizeof(long)) ? T_LONG : -1))))
-#else
-#define __Pyx_T_SIGNED_INT(x) \
- ((sizeof(x) == sizeof(char)) ? T_BYTE : \
- ((sizeof(x) == sizeof(short)) ? T_SHORT : \
- ((sizeof(x) == sizeof(int)) ? T_INT : \
- ((sizeof(x) == sizeof(long)) ? T_LONG : \
- ((sizeof(x) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))))
-#endif
-
-#define __Pyx_T_FLOATING(x) \
- ((sizeof(x) == sizeof(float)) ? T_FLOAT : \
- ((sizeof(x) == sizeof(double)) ? T_DOUBLE : -1))
-
-#if !defined(T_SIZET)
-#if !defined(T_ULONGLONG)
-#define T_SIZET \
- ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : -1))
-#else
-#define T_SIZET \
- ((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
- ((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : \
- ((sizeof(size_t) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))
-#endif
-#endif
-
 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
 static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
@@ -261,7 +279,7 @@
 
 #ifdef __GNUC__
 /* Test for GCC > 2.95 */
-#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) 
+#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
 #define likely(x) __builtin_expect(!!(x), 1)
 #define unlikely(x) __builtin_expect(!!(x), 0)
 #else /* __GNUC__ > 2 ... */
@@ -281,12 +299,16 @@
 static int __pyx_clineno = 0;
 static const char * __pyx_cfilenm= __FILE__;
 static const char *__pyx_filename;
-static const char **__pyx_f;
 
 
+static const char *__pyx_f[] = {
+ "_geod.pyx",
+ "_pyproj.pxi",
+};
+
 /* Type declarations */
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":5
+/* "_geod.pyx":5
 * include "_pyproj.pxi"
 * 
 * cdef class Geod: # <<<<<<<<<<<<<<
@@ -348,23 +370,23 @@
 #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);} } while(0)
 #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r);} } while(0)
 
+static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
+
 static void __Pyx_RaiseDoubleKeywordsError(
 const char* func_name, PyObject* kw_name); /*proto*/
 
+static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/
+
 static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
 Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
 
-static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name); /*proto*/
-
-static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
-
-static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
-
 static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
+
 static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
 
 static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
@@ -383,6 +405,8 @@
 
 static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
 
+static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *);
+
 static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
 
 static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
@@ -402,27 +426,20 @@
 
 static PyTypeObject *__pyx_ptype_5_geod_Geod = 0;
 #define __Pyx_MODULE_NAME "_geod"
-int __pyx_module_is_main__geod = 0;
+static int __pyx_module_is_main__geod = 0;
 
 /* Implementation of _geod */
 static PyObject *__pyx_builtin_RuntimeError;
 static PyObject *__pyx_builtin_ValueError;
 static char __pyx_k_2[] = "Buffer lengths not the same";
-static char __pyx_k_3[] = "undefined inverse geodesic (may be an antipodal point)";
-static char __pyx_k_6[] = "1.8.7";
-static char __pyx_k_7[] = "Geod.__reduce__ (line 22)";
-static char __pyx_k_8[] = "Geod._fwd (line 26)";
-static char __pyx_k_9[] = "Geod._inv (line 82)";
-static char __pyx_k_10[] = "Geod._npts (line 133)";
+static char __pyx_k_4[] = "undefined inverse geodesic (may be an antipodal point)";
+static char __pyx_k_10[] = "1.8.7";
 static char __pyx_k__u[] = "u";
 static char __pyx_k__v[] = "v";
 static char __pyx_k__az[] = "az";
 static char __pyx_k__p1[] = "p1";
 static char __pyx_k__p2[] = "p2";
 static char __pyx_k__DIST[] = "DIST";
-static char __pyx_k__Geod[] = "Geod";
-static char __pyx_k___fwd[] = "_fwd";
-static char __pyx_k___inv[] = "_inv";
 static char __pyx_k__dist[] = "dist";
 static char __pyx_k__lat1[] = "lat1";
 static char __pyx_k__lat2[] = "lat2";
@@ -432,7 +449,6 @@
 static char __pyx_k__lons[] = "lons";
 static char __pyx_k__math[] = "math";
 static char __pyx_k__npts[] = "npts";
-static char __pyx_k___npts[] = "_npts";
 static char __pyx_k__lats1[] = "lats1";
 static char __pyx_k__lats2[] = "lats2";
 static char __pyx_k__lons1[] = "lons1";
@@ -447,7 +463,6 @@
 static char __pyx_k____test__[] = "__test__";
 static char __pyx_k____class__[] = "__class__";
 static char __pyx_k__ValueError[] = "ValueError";
-static char __pyx_k____reduce__[] = "__reduce__";
 static char __pyx_k__geodesic_t[] = "geodesic_t";
 static char __pyx_k__geodstring[] = "geodstring";
 static char __pyx_k____version__[] = "__version__";
@@ -455,29 +470,20 @@
 static char __pyx_k__RuntimeError[] = "RuntimeError";
 static char __pyx_k__proj_version[] = "proj_version";
 static char __pyx_k__geodinitstring[] = "geodinitstring";
-static PyObject *__pyx_kp_u_10;
+static PyObject *__pyx_kp_s_10;
 static PyObject *__pyx_kp_s_2;
-static PyObject *__pyx_kp_s_3;
-static PyObject *__pyx_kp_s_6;
-static PyObject *__pyx_kp_u_7;
-static PyObject *__pyx_kp_u_8;
-static PyObject *__pyx_kp_u_9;
+static PyObject *__pyx_kp_s_4;
 static PyObject *__pyx_n_s__ALPHA12;
 static PyObject *__pyx_n_s__ALPHA21;
 static PyObject *__pyx_n_s__DIST;
-static PyObject *__pyx_n_s__Geod;
 static PyObject *__pyx_n_s__RuntimeError;
 static PyObject *__pyx_n_s__ValueError;
 static PyObject *__pyx_n_s____class__;
 static PyObject *__pyx_n_s____main__;
-static PyObject *__pyx_n_s____reduce__;
 static PyObject *__pyx_n_s____test__;
 static PyObject *__pyx_n_s____version__;
 static PyObject *__pyx_n_s___dg2rad;
 static PyObject *__pyx_n_s___doublesize;
-static PyObject *__pyx_n_s___fwd;
-static PyObject *__pyx_n_s___inv;
-static PyObject *__pyx_n_s___npts;
 static PyObject *__pyx_n_s___rad2dg;
 static PyObject *__pyx_n_s__az;
 static PyObject *__pyx_n_s__degrees;
@@ -504,24 +510,28 @@
 static PyObject *__pyx_n_s__u;
 static PyObject *__pyx_n_s__v;
 static PyObject *__pyx_k_1;
-static PyObject *__pyx_k_4;
-static PyObject *__pyx_k_5;
+static PyObject *__pyx_k_6;
+static PyObject *__pyx_k_9;
+static PyObject *__pyx_k_tuple_3;
+static PyObject *__pyx_k_tuple_5;
+static PyObject *__pyx_k_tuple_7;
+static PyObject *__pyx_k_tuple_8;
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":11
+/* "_geod.pyx":11
 * cdef char *geodinitstring
 * 
- * def __new__(self, geodstring): # <<<<<<<<<<<<<<
+ * def __cinit__(self, geodstring): # <<<<<<<<<<<<<<
 * cdef GEODESIC_T GEOD_T
 * # setup geod initialization string.
 */
 
-static int __pyx_pf_5_geod_4Geod___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static int __pyx_pf_5_geod_4Geod___new__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+static int __pyx_pf_5_geod_4Geod___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pf_5_geod_4Geod___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 PyObject *__pyx_v_geodstring = 0;
 GEODESIC_T __pyx_v_GEOD_T;
 int __pyx_r;
- int __pyx_t_1;
- PyObject *__pyx_t_2 = NULL;
+ PyObject *__pyx_t_1 = NULL;
+ int __pyx_t_2;
 PyObject *__pyx_t_3 = NULL;
 static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__geodstring,0};
 __Pyx_RefNannySetupContext("__cinit__");
@@ -540,7 +550,7 @@
 else goto __pyx_L5_argtuple_error;
 }
 if (unlikely(kw_args > 0)) {
- if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__new__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 __pyx_v_geodstring = values[0];
 } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
@@ -550,15 +560,14 @@
 }
 goto __pyx_L4_argument_unpacking_done;
 __pyx_L5_argtuple_error:;
- __Pyx_RaiseArgtupleInvalid("__new__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+ __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 __pyx_L3_error:;
 __Pyx_AddTraceback("_geod.Geod.__cinit__");
+ __Pyx_RefNannyFinishContext();
 return -1;
 __pyx_L4_argument_unpacking_done:;
- __Pyx_INCREF((PyObject *)__pyx_v_self);
- __Pyx_INCREF(__pyx_v_geodstring);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":14
+ /* "_geod.pyx":14
 * cdef GEODESIC_T GEOD_T
 * # setup geod initialization string.
 * self.geodstring = geodstring # <<<<<<<<<<<<<<
@@ -571,16 +580,19 @@
 __Pyx_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring = __pyx_v_geodstring;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":15
+ /* "_geod.pyx":15
 * # setup geod initialization string.
 * self.geodstring = geodstring
 * self.geodinitstring = PyString_AsString(self.geodstring) # <<<<<<<<<<<<<<
 * # initialize projection
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0]
 */
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodinitstring = PyString_AsString(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
+ __pyx_t_1 = ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring;
+ __Pyx_INCREF(__pyx_t_1);
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodinitstring = PyString_AsString(__pyx_t_1);
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":17
+ /* "_geod.pyx":17
 * self.geodinitstring = PyString_AsString(self.geodstring)
 * # initialize projection
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0] # <<<<<<<<<<<<<<
@@ -589,70 +601,68 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t = (GEOD_init_plus(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodinitstring, (&__pyx_v_GEOD_T))[0]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":18
+ /* "_geod.pyx":18
 * # initialize projection
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0]
 * if pj_errno != 0: # <<<<<<<<<<<<<<
 * raise RuntimeError(pj_strerrno(pj_errno))
 * self.proj_version = PJ_VERSION/100.
 */
- __pyx_t_1 = (pj_errno != 0);
- if (__pyx_t_1) {
+ __pyx_t_2 = (pj_errno != 0);
+ if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":19
+ /* "_geod.pyx":19
 * self.geodesic_t = GEOD_init_plus(self.geodinitstring, &GEOD_T)[0]
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * self.proj_version = PJ_VERSION/100.
 * 
 */
- __pyx_t_2 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+ __pyx_t_1 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_3);
- PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_2));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
- __pyx_t_2 = 0;
- __pyx_t_2 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_2);
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __Pyx_Raise(__pyx_t_2, 0, 0);
- __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_1));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
+ __pyx_t_1 = 0;
+ __pyx_t_1 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+ __Pyx_Raise(__pyx_t_1, 0, 0);
+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L6;
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":20
+ /* "_geod.pyx":20
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno))
 * self.proj_version = PJ_VERSION/100. # <<<<<<<<<<<<<<
 * 
 * def __reduce__(self):
 */
- __pyx_t_2 = PyFloat_FromDouble((PJ_VERSION / 100.0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_2);
- __Pyx_GIVEREF(__pyx_t_2);
+ __pyx_t_1 = PyFloat_FromDouble((PJ_VERSION / 100.)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_1);
+ __Pyx_GIVEREF(__pyx_t_1);
 __Pyx_GOTREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version);
 __Pyx_DECREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version);
- ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version = __pyx_t_2;
- __pyx_t_2 = 0;
+ ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->proj_version = __pyx_t_1;
+ __pyx_t_1 = 0;
 
 __pyx_r = 0;
 goto __pyx_L0;
 __pyx_L1_error:;
- __Pyx_XDECREF(__pyx_t_2);
+ __Pyx_XDECREF(__pyx_t_1);
 __Pyx_XDECREF(__pyx_t_3);
 __Pyx_AddTraceback("_geod.Geod.__cinit__");
 __pyx_r = -1;
 __pyx_L0:;
- __Pyx_DECREF((PyObject *)__pyx_v_self);
- __Pyx_DECREF(__pyx_v_geodstring);
 __Pyx_RefNannyFinishContext();
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":22
+/* "_geod.pyx":22
 * self.proj_version = PJ_VERSION/100.
 * 
 * def __reduce__(self): # <<<<<<<<<<<<<<
@@ -660,16 +670,16 @@
 * return (self.__class__,(self.geodstring,))
 */
 
-static PyObject *__pyx_pf_5_geod_4Geod___reduce__(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
-static char __pyx_doc_5_geod_4Geod___reduce__[] = "special method that allows pyproj.Geod instance to be pickled";
-static PyObject *__pyx_pf_5_geod_4Geod___reduce__(PyObject *__pyx_v_self, PyObject *unused) {
+static PyObject *__pyx_pf_5_geod_4Geod_1__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
+static char __pyx_doc_5_geod_4Geod_1__reduce__[] = "special method that allows pyproj.Geod instance to be pickled";
+static PyObject *__pyx_pf_5_geod_4Geod_1__reduce__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 PyObject *__pyx_r = NULL;
 PyObject *__pyx_t_1 = NULL;
 PyObject *__pyx_t_2 = NULL;
 PyObject *__pyx_t_3 = NULL;
 __Pyx_RefNannySetupContext("__reduce__");
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":24
+ /* "_geod.pyx":24
 * def __reduce__(self):
 * """special method that allows pyproj.Geod instance to be pickled"""
 * return (self.__class__,(self.geodstring,)) # <<<<<<<<<<<<<<
@@ -680,19 +690,19 @@
 __pyx_t_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_s____class__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_1);
 __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_2);
+ __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 __Pyx_INCREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 PyTuple_SET_ITEM(__pyx_t_2, 0, ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 __Pyx_GIVEREF(((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodstring);
 __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_3);
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
 __Pyx_GIVEREF(__pyx_t_1);
- PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
- __Pyx_GIVEREF(__pyx_t_2);
+ PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_t_2));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
 __pyx_t_1 = 0;
 __pyx_t_2 = 0;
- __pyx_r = __pyx_t_3;
+ __pyx_r = ((PyObject *)__pyx_t_3);
 __pyx_t_3 = 0;
 goto __pyx_L0;
 
@@ -710,7 +720,7 @@
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":26
+/* "_geod.pyx":26
 * return (self.__class__,(self.geodstring,))
 * 
 * def _fwd(self, object lons, object lats, object az, object dist, radians=False): # <<<<<<<<<<<<<<
@@ -718,9 +728,9 @@
 * forward transformation - determine longitude, latitude and back azimuth
 */
 
-static PyObject *__pyx_pf_5_geod_4Geod__fwd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_5_geod_4Geod__fwd[] = "\n forward transformation - determine longitude, latitude and back azimuth \n of a terminus point given an initial point longitude and latitude, plus\n forward azimuth and distance.\n if radians=True, lons/lats are radians instead of degrees.\n ";
-static PyObject *__pyx_pf_5_geod_4Geod__fwd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+static PyObject *__pyx_pf_5_geod_4Geod_2_fwd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static char __pyx_doc_5_geod_4Geod_2_fwd[] = "\n forward transformation - determine longitude, latitude and back azimuth \n of a terminus point given an initial point longitude and latitude, plus\n forward azimuth and distance.\n if radians=True, lons/lats are radians instead of degrees.\n ";
+static PyObject *__pyx_pf_5_geod_4Geod_2_fwd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 PyObject *__pyx_v_lons = 0;
 PyObject *__pyx_v_lats = 0;
 PyObject *__pyx_v_az = 0;
@@ -787,9 +797,9 @@
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 }
 case 4:
- if (kw_args > 1) {
+ if (kw_args > 0) {
 PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__radians);
- if (unlikely(value)) { values[4] = value; kw_args--; }
+ if (value) { values[4] = value; kw_args--; }
 }
 }
 if (unlikely(kw_args > 0)) {
@@ -819,16 +829,11 @@
 __Pyx_RaiseArgtupleInvalid("_fwd", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 __pyx_L3_error:;
 __Pyx_AddTraceback("_geod.Geod._fwd");
+ __Pyx_RefNannyFinishContext();
 return NULL;
 __pyx_L4_argument_unpacking_done:;
- __Pyx_INCREF((PyObject *)__pyx_v_self);
- __Pyx_INCREF(__pyx_v_lons);
- __Pyx_INCREF(__pyx_v_lats);
- __Pyx_INCREF(__pyx_v_az);
- __Pyx_INCREF(__pyx_v_dist);
- __Pyx_INCREF(__pyx_v_radians);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":37
+ /* "_geod.pyx":37
 * cdef void *londata, *latdata, *azdat, *distdat
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenlons) <> 0: # <<<<<<<<<<<<<<
@@ -838,7 +843,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lons, (&__pyx_v_londata), (&__pyx_v_buflenlons)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":38
+ /* "_geod.pyx":38
 * # if buffer api is supported, get pointer to data buffers.
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenlons) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -851,7 +856,7 @@
 }
 __pyx_L6:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":39
+ /* "_geod.pyx":39
 * if PyObject_AsWriteBuffer(lons, &londata, &buflenlons) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0: # <<<<<<<<<<<<<<
@@ -861,7 +866,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_lats, (&__pyx_v_latdata), (&__pyx_v_buflenlats)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":40
+ /* "_geod.pyx":40
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -874,7 +879,7 @@
 }
 __pyx_L7:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":41
+ /* "_geod.pyx":41
 * if PyObject_AsWriteBuffer(lats, &latdata, &buflenlats) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0: # <<<<<<<<<<<<<<
@@ -884,7 +889,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_az, (&__pyx_v_azdat), (&__pyx_v_buflenaz)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":42
+ /* "_geod.pyx":42
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -897,7 +902,7 @@
 }
 __pyx_L8:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":43
+ /* "_geod.pyx":43
 * if PyObject_AsWriteBuffer(az, &azdat, &buflenaz) <> 0:
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(dist, &distdat, &buflend) <> 0: # <<<<<<<<<<<<<<
@@ -907,7 +912,7 @@
 __pyx_t_1 = (PyObject_AsWriteBuffer(__pyx_v_dist, (&__pyx_v_distdat), (&__pyx_v_buflend)) != 0);
 if (__pyx_t_1) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":44
+ /* "_geod.pyx":44
 * raise RuntimeError
 * if PyObject_AsWriteBuffer(dist, &distdat, &buflend) <> 0:
 * raise RuntimeError # <<<<<<<<<<<<<<
@@ -920,7 +925,7 @@
 }
 __pyx_L9:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":46
+ /* "_geod.pyx":46
 * raise RuntimeError
 * # process data in buffer
 * if not buflenlons == buflenlats == buflenaz == buflend: # <<<<<<<<<<<<<<
@@ -937,48 +942,42 @@
 __pyx_t_2 = (!__pyx_t_1);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":47
+ /* "_geod.pyx":47
 * # process data in buffer
 * if not buflenlons == buflenlats == buflenaz == buflend:
 * raise RuntimeError("Buffer lengths not the same") # <<<<<<<<<<<<<<
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata
 */
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_k_tuple_3), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_2));
- PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_kp_s_2));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2));
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_Raise(__pyx_t_3, 0, 0);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __Pyx_Raise(__pyx_t_4, 0, 0);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L10;
 }
 __pyx_L10:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":48
+ /* "_geod.pyx":48
 * if not buflenlons == buflenlats == buflenaz == buflend:
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenlons/_doublesize # <<<<<<<<<<<<<<
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 */
- __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_buflenlons); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___doublesize); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_5);
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 __pyx_v_ndim = __pyx_t_6;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":49
+ /* "_geod.pyx":49
 * raise RuntimeError("Buffer lengths not the same")
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata # <<<<<<<<<<<<<<
@@ -987,7 +986,7 @@
 */
 __pyx_v_lonsdata = ((double *)__pyx_v_londata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":50
+ /* "_geod.pyx":50
 * ndim = buflenlons/_doublesize
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata # <<<<<<<<<<<<<<
@@ -996,7 +995,7 @@
 */
 __pyx_v_latsdata = ((double *)__pyx_v_latdata);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":51
+ /* "_geod.pyx":51
 * lonsdata = <double *>londata
 * latsdata = <double *>latdata
 * azdata = <double *>azdat # <<<<<<<<<<<<<<
@@ -1005,7 +1004,7 @@
 */
 __pyx_v_azdata = ((double *)__pyx_v_azdat);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":52
+ /* "_geod.pyx":52
 * latsdata = <double *>latdata
 * azdata = <double *>azdat
 * distdata = <double *>distdat # <<<<<<<<<<<<<<
@@ -1014,7 +1013,7 @@
 */
 __pyx_v_distdata = ((double *)__pyx_v_distdat);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":53
+ /* "_geod.pyx":53
 * azdata = <double *>azdat
 * distdata = <double *>distdat
 * for i from 0 <= i < ndim: # <<<<<<<<<<<<<<
@@ -1024,7 +1023,7 @@
 __pyx_t_6 = __pyx_v_ndim;
 for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":54
+ /* "_geod.pyx":54
 * distdata = <double *>distdat
 * for i from 0 <= i < ndim:
 * if radians: # <<<<<<<<<<<<<<
@@ -1034,7 +1033,7 @@
 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":55
+ /* "_geod.pyx":55
 * for i from 0 <= i < ndim:
 * if radians:
 * self.geodesic_t.p1.v = lonsdata[i] # <<<<<<<<<<<<<<
@@ -1043,7 +1042,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = (__pyx_v_lonsdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":56
+ /* "_geod.pyx":56
 * if radians:
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i] # <<<<<<<<<<<<<<
@@ -1052,7 +1051,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = (__pyx_v_latsdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":57
+ /* "_geod.pyx":57
 * self.geodesic_t.p1.v = lonsdata[i]
 * self.geodesic_t.p1.u = latsdata[i]
 * self.geodesic_t.ALPHA12 = azdata[i] # <<<<<<<<<<<<<<
@@ -1061,7 +1060,7 @@
 */
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = (__pyx_v_azdata[__pyx_v_i]);
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":58
+ /* "_geod.pyx":58
 * self.geodesic_t.p1.u = latsdata[i]
 * self.geodesic_t.ALPHA12 = azdata[i]
 * self.geodesic_t.DIST = distdata[i] # <<<<<<<<<<<<<<
@@ -1073,7 +1072,7 @@
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":60
+ /* "_geod.pyx":60
 * self.geodesic_t.DIST = distdata[i]
 * else:
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i] # <<<<<<<<<<<<<<
@@ -1082,36 +1081,36 @@
 */
 __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_lonsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.v = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":61
+ /* "_geod.pyx":61
 * else:
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i] # <<<<<<<<<<<<<<
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i]
 */
- __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_3);
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_4);
- __pyx_t_3 = PyFloat_FromDouble((__pyx_v_latsdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_5);
+ __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p1.u = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":62
+ /* "_geod.pyx":62
 * self.geodesic_t.p1.v = _dg2rad*lonsdata[i]
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i] # <<<<<<<<<<<<<<
@@ -1120,17 +1119,17 @@
 */
 __pyx_t_5 = __Pyx_GetName(__pyx_m, __pyx_n_s___dg2rad); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_5);
- __pyx_t_3 = PyFloat_FromDouble((__pyx_v_azdata[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_4 = PyFloat_FromDouble((__pyx_v_azdata[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(__pyx_t_4);
+ __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+ __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+ __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA12 = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":63
+ /* "_geod.pyx":63
 * self.geodesic_t.p1.u = _dg2rad*latsdata[i]
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i] # <<<<<<<<<<<<<<
@@ -1141,7 +1140,7 @@
 }
 __pyx_L13:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":64
+ /* "_geod.pyx":64
 * self.geodesic_t.ALPHA12 = _dg2rad*azdata[i]
 * self.geodesic_t.DIST = distdata[i]
 * geod_pre(&self.geodesic_t) # <<<<<<<<<<<<<<
@@ -1150,7 +1149,7 @@
 */
 geod_pre((&((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t));
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":65
+ /* "_geod.pyx":65
 * self.geodesic_t.DIST = distdata[i]
 * geod_pre(&self.geodesic_t)
 * if pj_errno != 0: # <<<<<<<<<<<<<<
@@ -1160,31 +1159,31 @@
 __pyx_t_2 = (pj_errno != 0);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":66
+ /* "_geod.pyx":66
 * geod_pre(&self.geodesic_t)
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * geod_for(&self.geodesic_t)
 * if pj_errno != 0:
 */
- __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+ __pyx_t_3 = 0;
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
- __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_3, 0, 0);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __Pyx_Raise(__pyx_t_4, 0, 0);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L14;
 }
 __pyx_L14:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":67
+ /* "_geod.pyx":67
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno))
 * geod_for(&self.geodesic_t) # <<<<<<<<<<<<<<
@@ -1193,7 +1192,7 @@
 */
 geod_for((&((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t));
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":68
+ /* "_geod.pyx":68
 * raise RuntimeError(pj_strerrno(pj_errno))
 * geod_for(&self.geodesic_t)
 * if pj_errno != 0: # <<<<<<<<<<<<<<
@@ -1203,31 +1202,31 @@
 __pyx_t_2 = (pj_errno != 0);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":69
+ /* "_geod.pyx":69
 * geod_for(&self.geodesic_t)
 * if pj_errno != 0:
 * raise RuntimeError(pj_strerrno(pj_errno)) # <<<<<<<<<<<<<<
 * # check for NaN.
 * if self.geodesic_t.ALPHA21 != self.geodesic_t.ALPHA21:
 */
- __pyx_t_4 = __Pyx_PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyBytes_FromString(pj_strerrno(pj_errno)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+ __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(((PyObject *)__pyx_t_4));
- __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_3));
+ __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+ __pyx_t_3 = 0;
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_RuntimeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
- __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
- __pyx_t_4 = 0;
- __pyx_t_4 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
+ __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+ __Pyx_Raise(__pyx_t_3, 0, 0);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
- __Pyx_Raise(__pyx_t_4, 0, 0);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 goto __pyx_L15;
 }
 __pyx_L15:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":71
+ /* "_geod.pyx":71
 * raise RuntimeError(pj_strerrno(pj_errno))
 * # check for NaN.
 * if self.geodesic_t.ALPHA21 != self.geodesic_t.ALPHA21: # <<<<<<<<<<<<<<
@@ -1237,21 +1236,15 @@
 __pyx_t_2 = (((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21 != ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.ALPHA21);
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":72
+ /* "_geod.pyx":72
 * # check for NaN.
 * if self.geodesic_t.ALPHA21 != self.geodesic_t.ALPHA21:
 * raise ValueError('undefined inverse geodesic (may be an antipodal point)') # <<<<<<<<<<<<<<
 * if radians:
 * lonsdata[i] = self.geodesic_t.p2.v
 */
- __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
- __Pyx_GOTREF(__pyx_t_4);
- __Pyx_INCREF(((PyObject *)__pyx_kp_s_3));
- PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_3));
- __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3));
- __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+ __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 __Pyx_GOTREF(__pyx_t_3);
- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 __Pyx_Raise(__pyx_t_3, 0, 0);
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -1259,7 +1252,7 @@
 }
 __pyx_L16:;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":73
+ /* "_geod.pyx":73
 * if self.geodesic_t.ALPHA21 != self.geodesic_t.ALPHA21:
 * raise ValueError('undefined inverse geodesic (may be an antipodal point)')
 * if radians: # <<<<<<<<<<<<<<
@@ -1269,7 +1262,7 @@
 __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_radians); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 if (__pyx_t_2) {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":74
+ /* "_geod.pyx":74
 * raise ValueError('undefined inverse geodesic (may be an antipodal point)')
 * if radians:
 * lonsdata[i] = self.geodesic_t.p2.v # <<<<<<<<<<<<<<
@@ -1278,7 +1271,7 @@
 */
 (__pyx_v_lonsdata[__pyx_v_i]) = ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.v;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":75
+ /* "_geod.pyx":75
 * if radians:
 * lonsdata[i] = self.geodesic_t.p2.v
 * latsdata[i] = self.geodesic_t.p2.u # <<<<<<<<<<<<<<
@@ -1287,7 +1280,7 @@
 */
 (__pyx_v_latsdata[__pyx_v_i]) = ((struct __pyx_obj_5_geod_Geod *)__pyx_v_self)->geodesic_t.p2.u;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":76
+ /* "_geod.pyx":76
 * lonsdata[i] = self.geodesic_t.p2.v
 * latsdata[i] = self.geodesic_t.p2.u
 * azdata[i] = self.geodesic_t.ALPHA21 # <<<<<<<<<<<<<<
@@ -1299,7 +1292,7 @@
 }
 /*else*/ {
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":78
+ /* "_geod.pyx":78
 * azdata[i] = self.geodesic_t.ALPHA21
 * else:
 * lonsdata[i] = _rad2dg*self.geodesic_t.p2.v # <<<<<<<<<<<<<<
@@ -1318,7 +1311,7 @@
 __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 (__pyx_v_lonsdata[__pyx_v_i]) = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":79
+ /* "_geod.pyx":79
 * else:
 * lonsdata[i] = _rad2dg*self.geodesic_t.p2.v
 * latsdata[i] = _rad2dg*self.geodesic_t.p2.u # <<<<<<<<<<<<<<
@@ -1337,7 +1330,7 @@
 __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 (__pyx_v_latsdata[__pyx_v_i]) = __pyx_t_7;
 
- /* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":80
+ /* "_geod.pyx":80
 * lonsdata[i] = _rad2dg*self.geodesic_t.p2.v
 * latsdata[i] = _rad2dg*self.geodesic_t.p2.u
 * azdata[i] = _rad2dg*self.geodesic_t.ALPHA21 # <<<<<<<<<<<<<<
@@ -1368,18 +1361,12 @@
 __Pyx_AddTraceback("_geod.Geod._fwd");
 __pyx_r = NULL;
 __pyx_L0:;
- __Pyx_DECREF((PyObject *)__pyx_v_self);
- __Pyx_DECREF(__pyx_v_lons);
- __Pyx_DECREF(__pyx_v_lats);
- __Pyx_DECREF(__pyx_v_az);
- __Pyx_DECREF(__pyx_v_dist);
- __Pyx_DECREF(__pyx_v_radians);
 __Pyx_XGIVEREF(__pyx_r);
 __Pyx_RefNannyFinishContext();
 return __pyx_r;
 }
 
-/* "/Volumes/User/jwhitaker/python/pyproj/_geod.pyx":82
+/* "_geod.pyx":82
 * azdata[i] = _rad2dg*self.geodesic_t.ALPHA21
 * 
 * def _inv(self, object lons1, object lats1, object lons2, object lats2, radians=False): # <<<<<<<<<<<<<<
@@ -1387,9 +1374,9 @@
 * inverse transformation - return forward and back azimuths, plus distance
 */
 
-static PyObject *__pyx_pf_5_geod_4Geod__inv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_5_geod_4Geod__inv[] = "\n inverse transformation - return forward and back azimuths, plus distance\n between an initial and terminus lat/lon pair.\n if radians=True, lons/lats are radians instead of degrees.\n ";
-static PyObject *__pyx_pf_5_geod_4Geod__inv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+static PyObject *__pyx_pf_5_geod_4Geod_3_inv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static char __pyx_doc_5_geod_4Geod_3_inv[] = "\n inverse transformation - return forward and back azimuths, plus distance\n between an initial and terminus lat/lon pair.\n if radians=True, lons/lats are radians instead of degrees.\n ";
+static PyObject *__pyx_pf_5_geod_4Geod_3_inv(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 PyObject *__pyx_v_lons1 = 0;
 PyObject...
 
[truncated message content]
From: <js...@us...> - 2011年02月08日 13:14:34
Revision: 8962
 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8962&view=rev
Author: jswhit
Date: 2011年02月08日 13:14:28 +0000 (2011年2月08日)
Log Message:
-----------
replace __new__ with __cinit__ to accomodate cython 0.14.1
Modified Paths:
--------------
 trunk/toolkits/basemap/src/_geod.pyx
 trunk/toolkits/basemap/src/_proj.pyx
Modified: trunk/toolkits/basemap/src/_geod.pyx
===================================================================
--- trunk/toolkits/basemap/src/_geod.pyx	2011年02月08日 13:14:00 UTC (rev 8961)
+++ trunk/toolkits/basemap/src/_geod.pyx	2011年02月08日 13:14:28 UTC (rev 8962)
@@ -8,7 +8,7 @@
 cdef public object proj_version
 cdef char *geodinitstring
 
- def __new__(self, geodstring):
+ def __cinit__(self, geodstring):
 cdef GEODESIC_T GEOD_T
 # setup geod initialization string.
 self.geodstring = geodstring
Modified: trunk/toolkits/basemap/src/_proj.pyx
===================================================================
--- trunk/toolkits/basemap/src/_proj.pyx	2011年02月08日 13:14:00 UTC (rev 8961)
+++ trunk/toolkits/basemap/src/_proj.pyx	2011年02月08日 13:14:28 UTC (rev 8962)
@@ -15,7 +15,7 @@
 cdef char *pjinitstring
 cdef public object srs
 
- def __new__(self, projstring):
+ def __cinit__(self, projstring):
 # setup proj initialization string.
 self.srs = projstring
 self.pjinitstring = PyString_AsString(self.srs)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /