2011-09-03 19:28:32 +08:00
/* Generated by Cython 0.15 on Sat Sep 3 13:08:58 2011 */
2010-09-06 22:15:53 +08:00
# define PY_SSIZE_T_CLEAN
# include "Python.h"
# ifndef Py_PYTHON_H
# error Python headers needed to compile C extensions, please install development version of Python.
2010-09-15 04:02:44 +08:00
# else
2011-09-03 19:28:32 +08:00
# 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
2010-09-06 22:15:53 +08:00
# endif
# ifndef DL_EXPORT
# define DL_EXPORT(t) t
# endif
2011-09-03 19:28:32 +08:00
# ifndef PY_LONG_LONG
# define PY_LONG_LONG LONG_LONG
# endif
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x02040000
# define METH_COEXIST 0
# define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
2010-09-15 04:02:44 +08:00
# define PyDict_Contains(d,o) PySequence_Contains(d,o)
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# 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)
2011-09-03 19:28:32 +08:00
# define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o)
2010-09-06 22:15:53 +08:00
# define PyNumber_Index(o) PyNumber_Int(o)
# define PyIndex_Check(o) PyNumber_Check(o)
2010-09-15 04:02:44 +08:00
# define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# 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 ,
# define PyType_Modified(t)
typedef struct {
2010-09-15 04:02:44 +08:00
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 ;
2010-09-06 22:15:53 +08:00
} Py_buffer ;
# define PyBUF_SIMPLE 0
# define PyBUF_WRITABLE 0x0001
# 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
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# if PY_MAJOR_VERSION < 3
# define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
# else
# define __Pyx_BUILTIN_MODULE_NAME "builtins"
# endif
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# if PY_MAJOR_VERSION >= 3
# define Py_TPFLAGS_CHECKTYPES 0
# define Py_TPFLAGS_HAVE_INDEX 0
# endif
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
# define Py_TPFLAGS_HAVE_NEWBUFFER 0
# endif
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# if PY_MAJOR_VERSION >= 3
# define PyBaseString_Type PyUnicode_Type
2011-09-03 19:28:32 +08:00
# define PyStringObject PyUnicodeObject
2010-09-15 04:02:44 +08:00
# define PyString_Type PyUnicode_Type
2011-09-03 19:28:32 +08:00
# define PyString_Check PyUnicode_Check
2010-09-15 04:02:44 +08:00
# define PyString_CheckExact PyUnicode_CheckExact
2011-09-03 19:28:32 +08:00
# endif
# if PY_VERSION_HEX < 0x02060000
# define PyBytesObject PyStringObject
2010-09-15 04:02:44 +08:00
# define PyBytes_Type PyString_Type
2011-09-03 19:28:32 +08:00
# define PyBytes_Check PyString_Check
2010-09-15 04:02:44 +08:00
# define PyBytes_CheckExact PyString_CheckExact
2011-09-03 19:28:32 +08:00
# 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)
2010-09-15 04:02:44 +08:00
# endif
2011-09-03 19:28:32 +08:00
# ifndef PySet_CheckExact
# define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type)
# endif
# define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2010-09-15 04:02:44 +08:00
# if PY_MAJOR_VERSION >= 3
2011-09-03 19:28:32 +08:00
# define PyIntObject PyLongObject
2010-09-06 22:15:53 +08:00
# 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
2011-09-03 19:28:32 +08:00
# endif
# if PY_MAJOR_VERSION >= 3
# define PyBoolObject PyLongObject
# endif
# if PY_VERSION_HEX < 0x03020000
typedef long Py_hash_t ;
# define __Pyx_PyInt_FromHash_t PyInt_FromLong
# define __Pyx_PyInt_AsHash_t PyInt_AsLong
# else
# define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
# define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t
# endif
# if PY_MAJOR_VERSION >= 3
2010-09-06 22:15:53 +08:00
# define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
2010-09-15 04:02:44 +08:00
# define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
2010-09-06 22:15:53 +08:00
# else
# define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
2010-09-15 04:02:44 +08:00
# define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
# 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 ) ) )
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
# if PY_MAJOR_VERSION >= 3
# define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# 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
2010-09-15 04:02:44 +08:00
2010-09-06 22:15:53 +08:00
# 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
2011-09-03 19:28:32 +08:00
# ifndef __PYX_EXTERN_C
# ifdef __cplusplus
# define __PYX_EXTERN_C extern "C"
# else
# define __PYX_EXTERN_C extern
# endif
# endif
# if defined(WIN32) || defined(MS_WINDOWS)
# define _USE_MATH_DEFINES
2010-09-06 22:15:53 +08:00
# endif
# include <math.h>
2011-09-03 19:28:32 +08:00
# define __PYX_HAVE__sklearn__utils__arrayfuncs
# define __PYX_HAVE_API__sklearn__utils__arrayfuncs
2010-09-15 04:02:44 +08:00
# include "stdio.h"
2011-09-03 19:28:32 +08:00
# include "stdlib.h"
2010-09-06 22:15:53 +08:00
# include "numpy/arrayobject.h"
2010-09-15 04:02:44 +08:00
# include "numpy/ufuncobject.h"
2010-09-06 22:15:53 +08:00
# include "cblas.h"
2010-11-05 21:54:09 +08:00
# include "float.h"
2010-09-15 04:45:56 +08:00
# include "src/cholesky_delete.c"
2011-09-03 19:28:32 +08:00
# ifdef _OPENMP
# include <omp.h>
# endif /* _OPENMP */
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
# ifdef PYREX_WITHOUT_ASSERTIONS
# define CYTHON_WITHOUT_ASSERTIONS
# endif
/* inline attribute */
2010-09-15 04:02:44 +08:00
# ifndef CYTHON_INLINE
# if defined(__GNUC__)
# define CYTHON_INLINE __inline__
# elif defined(_MSC_VER)
# define CYTHON_INLINE __inline
2011-09-03 19:28:32 +08:00
# elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# define CYTHON_INLINE inline
2010-09-15 04:02:44 +08:00
# else
2011-09-03 19:28:32 +08:00
# define CYTHON_INLINE
2010-09-15 04:02:44 +08:00
# endif
2010-09-06 22:15:53 +08:00
# endif
2011-09-03 19:28:32 +08:00
/* 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
2010-09-15 04:02:44 +08:00
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*/
2010-09-06 22:15:53 +08:00
/* Type Conversion Predeclarations */
2011-09-03 19:28:32 +08:00
# define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s)
# define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s))
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
# define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
2010-09-06 22:15:53 +08:00
# define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE int __Pyx_PyObject_IsTrue ( PyObject * ) ;
static CYTHON_INLINE PyObject * __Pyx_PyNumber_Int ( PyObject * x ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
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 * ) ;
2010-09-06 22:15:53 +08:00
# define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
# ifdef __GNUC__
2011-09-03 19:28:32 +08:00
/* Test for GCC > 2.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 ... */
# define likely(x) (x)
# define unlikely(x) (x)
# endif /* __GNUC__ > 2 ... */
2010-09-06 22:15:53 +08:00
# else /* __GNUC__ */
2011-09-03 19:28:32 +08:00
# define likely(x) (x)
# define unlikely(x) (x)
2010-09-06 22:15:53 +08:00
# endif /* __GNUC__ */
static PyObject * __pyx_m ;
static PyObject * __pyx_b ;
static PyObject * __pyx_empty_tuple ;
2010-09-15 04:02:44 +08:00
static PyObject * __pyx_empty_bytes ;
2010-09-06 22:15:53 +08:00
static int __pyx_lineno ;
static int __pyx_clineno = 0 ;
static const char * __pyx_cfilenm = __FILE__ ;
static const char * __pyx_filename ;
2010-09-15 04:02:44 +08:00
# if !defined(CYTHON_CCOMPLEX)
# if defined(__cplusplus)
# define CYTHON_CCOMPLEX 1
# elif defined(_Complex_I)
# define CYTHON_CCOMPLEX 1
# else
# define CYTHON_CCOMPLEX 0
# endif
# endif
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
# if CYTHON_CCOMPLEX
# ifdef __cplusplus
# include <complex>
# else
# include <complex.h>
# endif
# endif
# if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
# undef _Complex_I
# define _Complex_I 1.0fj
# endif
2011-09-03 19:28:32 +08:00
static const char * __pyx_f [ ] = {
" arrayfuncs.pyx " ,
" numpy.pxd " ,
} ;
/* "numpy.pxd":719
* # in Cython to enable them only on the right systems .
*
* ctypedef npy_int8 int8_t # < < < < < < < < < < < < < <
* ctypedef npy_int16 int16_t
* ctypedef npy_int32 int32_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_int8 __pyx_t_5numpy_int8_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":720
*
* ctypedef npy_int8 int8_t
* ctypedef npy_int16 int16_t # < < < < < < < < < < < < < <
* ctypedef npy_int32 int32_t
* ctypedef npy_int64 int64_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_int16 __pyx_t_5numpy_int16_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":721
* ctypedef npy_int8 int8_t
* ctypedef npy_int16 int16_t
* ctypedef npy_int32 int32_t # < < < < < < < < < < < < < <
* ctypedef npy_int64 int64_t
* # ctypedef npy_int96 int96_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_int32 __pyx_t_5numpy_int32_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":722
* ctypedef npy_int16 int16_t
* ctypedef npy_int32 int32_t
* ctypedef npy_int64 int64_t # < < < < < < < < < < < < < <
* # ctypedef npy_int96 int96_t
* # ctypedef npy_int128 int128_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_int64 __pyx_t_5numpy_int64_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":726
* # ctypedef npy_int128 int128_t
*
* ctypedef npy_uint8 uint8_t # < < < < < < < < < < < < < <
* ctypedef npy_uint16 uint16_t
* ctypedef npy_uint32 uint32_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_uint8 __pyx_t_5numpy_uint8_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":727
*
* ctypedef npy_uint8 uint8_t
* ctypedef npy_uint16 uint16_t # < < < < < < < < < < < < < <
* ctypedef npy_uint32 uint32_t
* ctypedef npy_uint64 uint64_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_uint16 __pyx_t_5numpy_uint16_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":728
* ctypedef npy_uint8 uint8_t
* ctypedef npy_uint16 uint16_t
* ctypedef npy_uint32 uint32_t # < < < < < < < < < < < < < <
* ctypedef npy_uint64 uint64_t
* # ctypedef npy_uint96 uint96_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_uint32 __pyx_t_5numpy_uint32_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":729
* ctypedef npy_uint16 uint16_t
* ctypedef npy_uint32 uint32_t
* ctypedef npy_uint64 uint64_t # < < < < < < < < < < < < < <
* # ctypedef npy_uint96 uint96_t
* # ctypedef npy_uint128 uint128_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_uint64 __pyx_t_5numpy_uint64_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":733
* # ctypedef npy_uint128 uint128_t
*
* ctypedef npy_float32 float32_t # < < < < < < < < < < < < < <
* ctypedef npy_float64 float64_t
* # ctypedef npy_float80 float80_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_float32 __pyx_t_5numpy_float32_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":734
*
* ctypedef npy_float32 float32_t
* ctypedef npy_float64 float64_t # < < < < < < < < < < < < < <
* # ctypedef npy_float80 float80_t
* # ctypedef npy_float128 float128_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_float64 __pyx_t_5numpy_float64_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":743
* # The int types are mapped a bit surprising - -
* # numpy . int corresponds to ' l ' and numpy . long to ' q '
* ctypedef npy_long int_t # < < < < < < < < < < < < < <
* ctypedef npy_longlong long_t
* ctypedef npy_longlong longlong_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_long __pyx_t_5numpy_int_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":744
* # numpy . int corresponds to ' l ' and numpy . long to ' q '
* ctypedef npy_long int_t
* ctypedef npy_longlong long_t # < < < < < < < < < < < < < <
* ctypedef npy_longlong longlong_t
*
*/
2010-09-15 04:02:44 +08:00
typedef npy_longlong __pyx_t_5numpy_long_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":745
* ctypedef npy_long int_t
* ctypedef npy_longlong long_t
* ctypedef npy_longlong longlong_t # < < < < < < < < < < < < < <
*
* ctypedef npy_ulong uint_t
*/
typedef npy_longlong __pyx_t_5numpy_longlong_t ;
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":747
* ctypedef npy_longlong longlong_t
*
* ctypedef npy_ulong uint_t # < < < < < < < < < < < < < <
* ctypedef npy_ulonglong ulong_t
* ctypedef npy_ulonglong ulonglong_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_ulong __pyx_t_5numpy_uint_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":748
*
* ctypedef npy_ulong uint_t
* ctypedef npy_ulonglong ulong_t # < < < < < < < < < < < < < <
* ctypedef npy_ulonglong ulonglong_t
*
*/
2010-09-15 04:02:44 +08:00
typedef npy_ulonglong __pyx_t_5numpy_ulong_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":749
* ctypedef npy_ulong uint_t
* ctypedef npy_ulonglong ulong_t
* ctypedef npy_ulonglong ulonglong_t # < < < < < < < < < < < < < <
*
* ctypedef npy_intp intp_t
*/
typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t ;
/* "numpy.pxd":751
* ctypedef npy_ulonglong ulonglong_t
*
* ctypedef npy_intp intp_t # < < < < < < < < < < < < < <
* ctypedef npy_uintp uintp_t
*
*/
typedef npy_intp __pyx_t_5numpy_intp_t ;
/* "numpy.pxd":752
*
* ctypedef npy_intp intp_t
* ctypedef npy_uintp uintp_t # < < < < < < < < < < < < < <
*
* ctypedef npy_double float_t
*/
typedef npy_uintp __pyx_t_5numpy_uintp_t ;
/* "numpy.pxd":754
* ctypedef npy_uintp uintp_t
*
* ctypedef npy_double float_t # < < < < < < < < < < < < < <
* ctypedef npy_double double_t
* ctypedef npy_longdouble longdouble_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_double __pyx_t_5numpy_float_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":755
*
* ctypedef npy_double float_t
* ctypedef npy_double double_t # < < < < < < < < < < < < < <
* ctypedef npy_longdouble longdouble_t
*
*/
2010-09-15 04:02:44 +08:00
typedef npy_double __pyx_t_5numpy_double_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":756
* ctypedef npy_double float_t
* ctypedef npy_double double_t
* ctypedef npy_longdouble longdouble_t # < < < < < < < < < < < < < <
*
* ctypedef npy_cfloat cfloat_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_longdouble __pyx_t_5numpy_longdouble_t ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":44
* int float_cholesky_delete ( int m , int n , float * L , int go_out )
*
* ctypedef np . float64_t DOUBLE # < < < < < < < < < < < < < <
*
*
*/
typedef __pyx_t_5numpy_float64_t __pyx_t_7sklearn_5utils_10arrayfuncs_DOUBLE ;
2010-09-15 04:02:44 +08:00
# if CYTHON_CCOMPLEX
# ifdef __cplusplus
typedef : : std : : complex < float > __pyx_t_float_complex ;
# else
typedef float _Complex __pyx_t_float_complex ;
# endif
# else
typedef struct { float real , imag ; } __pyx_t_float_complex ;
# endif
# if CYTHON_CCOMPLEX
# ifdef __cplusplus
typedef : : std : : complex < double > __pyx_t_double_complex ;
# else
typedef double _Complex __pyx_t_double_complex ;
# endif
2010-09-06 22:15:53 +08:00
# else
2010-09-15 04:02:44 +08:00
typedef struct { double real , imag ; } __pyx_t_double_complex ;
# endif
2011-09-03 19:28:32 +08:00
/*--- Type declarations ---*/
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":758
* ctypedef npy_longdouble longdouble_t
*
* ctypedef npy_cfloat cfloat_t # < < < < < < < < < < < < < <
* ctypedef npy_cdouble cdouble_t
* ctypedef npy_clongdouble clongdouble_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_cfloat __pyx_t_5numpy_cfloat_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":759
*
* ctypedef npy_cfloat cfloat_t
* ctypedef npy_cdouble cdouble_t # < < < < < < < < < < < < < <
* ctypedef npy_clongdouble clongdouble_t
*
*/
2010-09-15 04:02:44 +08:00
typedef npy_cdouble __pyx_t_5numpy_cdouble_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":760
* ctypedef npy_cfloat cfloat_t
* ctypedef npy_cdouble cdouble_t
* ctypedef npy_clongdouble clongdouble_t # < < < < < < < < < < < < < <
*
* ctypedef npy_cdouble complex_t
*/
2010-09-15 04:02:44 +08:00
typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":762
* ctypedef npy_clongdouble clongdouble_t
*
* ctypedef npy_cdouble complex_t # < < < < < < < < < < < < < <
*
* cdef inline object PyArray_MultiIterNew1 ( a ) :
*/
2010-09-15 04:02:44 +08:00
typedef npy_cdouble __pyx_t_5numpy_complex_t ;
2011-09-03 19:28:32 +08:00
2010-09-15 04:02:44 +08:00
# 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 ;
2011-09-03 19:28:32 +08:00
static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI ( const char * modname ) ; /*proto*/
# define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
# define __Pyx_RefNannySetupContext(name) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
2010-09-15 04:02:44 +08:00
# define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
2011-09-03 19:28:32 +08:00
# 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__)
2010-09-15 04:02:44 +08:00
# define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
2011-09-03 19:28:32 +08:00
# define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
# define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
# define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
# define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
2010-09-15 04:02:44 +08:00
# else
2011-09-03 19:28:32 +08:00
# define __Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
# 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)
2011-09-03 19:28:32 +08:00
# define __Pyx_XINCREF(r) Py_XINCREF(r)
2010-09-15 04:02:44 +08:00
# define __Pyx_XDECREF(r) Py_XDECREF(r)
2011-09-03 19:28:32 +08:00
# define __Pyx_XGOTREF(r)
# define __Pyx_XGIVEREF(r)
2010-09-06 22:15:53 +08:00
# endif /* CYTHON_REFNANNY */
2011-09-03 19:28:32 +08:00
static PyObject * __Pyx_GetName ( PyObject * dict , PyObject * name ) ; /*proto*/
static int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
const char * name , int exact ) ; /*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 , PyObject * cause ) ; /*proto*/
2010-09-06 22:15:53 +08:00
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*/
2011-09-03 19:28:32 +08:00
static void __Pyx_RaiseDoubleKeywordsError (
const char * func_name , PyObject * kw_name ) ; /*proto*/
2010-09-06 22:15:53 +08:00
static int __Pyx_ParseOptionalKeywords ( PyObject * kwds , PyObject * * argnames [ ] , PyObject * kwds2 , PyObject * values [ ] , Py_ssize_t num_pos_args , const char * function_name ) ; /*proto*/
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError ( Py_ssize_t index ) ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError ( Py_ssize_t expected ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError ( void ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static void __Pyx_UnpackTupleError ( PyObject * , Py_ssize_t index ) ; /*proto*/
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_TypeTest ( PyObject * obj , PyTypeObject * type ) ; /*proto*/
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
static PyObject * __Pyx_Import ( PyObject * name , PyObject * from_list , long level ) ; /*proto*/
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
# include <string.h>
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_PyBytes_Equals ( PyObject * s1 , PyObject * s2 , int equals ) ; /*proto*/
2010-11-22 21:56:37 +08:00
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_PyUnicode_Equals ( PyObject * s1 , PyObject * s2 , int equals ) ; /*proto*/
# if PY_MAJOR_VERSION >= 3
# define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
# else
# define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
# endif
2010-09-15 04:02:44 +08:00
# if CYTHON_CCOMPLEX
# ifdef __cplusplus
# define __Pyx_CREAL(z) ((z).real())
# define __Pyx_CIMAG(z) ((z).imag())
# else
# define __Pyx_CREAL(z) (__real__(z))
# define __Pyx_CIMAG(z) (__imag__(z))
# endif
2010-09-06 22:15:53 +08:00
# else
2010-09-15 04:02:44 +08:00
# define __Pyx_CREAL(z) ((z).real)
# define __Pyx_CIMAG(z) ((z).imag)
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
# if defined(_WIN32) && defined(__cplusplus) && CYTHON_CCOMPLEX
# define __Pyx_SET_CREAL(z,x) ((z).real(x))
# define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
2010-09-06 22:15:53 +08:00
# else
2010-09-15 04:02:44 +08:00
# define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
# define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts ( float , float ) ;
# if CYTHON_CCOMPLEX
# define __Pyx_c_eqf(a, b) ((a)==(b))
# define __Pyx_c_sumf(a, b) ((a)+(b))
# define __Pyx_c_difff(a, b) ((a)-(b))
# define __Pyx_c_prodf(a, b) ((a)*(b))
# define __Pyx_c_quotf(a, b) ((a) / (b))
# define __Pyx_c_negf(a) (-(a))
# ifdef __cplusplus
# define __Pyx_c_is_zerof(z) ((z)==(float)0)
# define __Pyx_c_conjf(z) (::std::conj(z))
2011-09-03 19:28:32 +08:00
# if 1
# define __Pyx_c_absf(z) (::std::abs(z))
# define __Pyx_c_powf(a, b) (::std::pow(a, b))
# endif
2010-09-15 04:02:44 +08:00
# else
# define __Pyx_c_is_zerof(z) ((z)==0)
# define __Pyx_c_conjf(z) (conjf(z))
2011-09-03 19:28:32 +08:00
# if 1
# define __Pyx_c_absf(z) (cabsf(z))
# define __Pyx_c_powf(a, b) (cpowf(a, b))
# endif
2010-09-15 04:02:44 +08:00
# endif
2010-09-06 22:15:53 +08:00
# else
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE int __Pyx_c_eqf ( __pyx_t_float_complex , __pyx_t_float_complex ) ;
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf ( __pyx_t_float_complex , __pyx_t_float_complex ) ;
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff ( __pyx_t_float_complex , __pyx_t_float_complex ) ;
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf ( __pyx_t_float_complex , __pyx_t_float_complex ) ;
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf ( __pyx_t_float_complex , __pyx_t_float_complex ) ;
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf ( __pyx_t_float_complex ) ;
static CYTHON_INLINE int __Pyx_c_is_zerof ( __pyx_t_float_complex ) ;
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf ( __pyx_t_float_complex ) ;
2011-09-03 19:28:32 +08:00
# if 1
static CYTHON_INLINE float __Pyx_c_absf ( __pyx_t_float_complex ) ;
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf ( __pyx_t_float_complex , __pyx_t_float_complex ) ;
# endif
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts ( double , double ) ;
# if CYTHON_CCOMPLEX
# define __Pyx_c_eq(a, b) ((a)==(b))
# define __Pyx_c_sum(a, b) ((a)+(b))
# define __Pyx_c_diff(a, b) ((a)-(b))
# define __Pyx_c_prod(a, b) ((a)*(b))
# define __Pyx_c_quot(a, b) ((a) / (b))
# define __Pyx_c_neg(a) (-(a))
# ifdef __cplusplus
# define __Pyx_c_is_zero(z) ((z)==(double)0)
# define __Pyx_c_conj(z) (::std::conj(z))
2011-09-03 19:28:32 +08:00
# if 1
# define __Pyx_c_abs(z) (::std::abs(z))
# define __Pyx_c_pow(a, b) (::std::pow(a, b))
# endif
2010-09-15 04:02:44 +08:00
# else
# define __Pyx_c_is_zero(z) ((z)==0)
# define __Pyx_c_conj(z) (conj(z))
2011-09-03 19:28:32 +08:00
# if 1
# define __Pyx_c_abs(z) (cabs(z))
# define __Pyx_c_pow(a, b) (cpow(a, b))
# endif
2010-09-15 04:02:44 +08:00
# endif
2010-09-06 22:15:53 +08:00
# else
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE int __Pyx_c_eq ( __pyx_t_double_complex , __pyx_t_double_complex ) ;
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum ( __pyx_t_double_complex , __pyx_t_double_complex ) ;
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff ( __pyx_t_double_complex , __pyx_t_double_complex ) ;
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod ( __pyx_t_double_complex , __pyx_t_double_complex ) ;
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot ( __pyx_t_double_complex , __pyx_t_double_complex ) ;
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg ( __pyx_t_double_complex ) ;
static CYTHON_INLINE int __Pyx_c_is_zero ( __pyx_t_double_complex ) ;
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj ( __pyx_t_double_complex ) ;
2011-09-03 19:28:32 +08:00
# if 1
static CYTHON_INLINE double __Pyx_c_abs ( __pyx_t_double_complex ) ;
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow ( __pyx_t_double_complex , __pyx_t_double_complex ) ;
# endif
2010-09-06 22:15:53 +08:00
# endif
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE char __Pyx_PyInt_AsChar ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE short __Pyx_PyInt_AsShort ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE int __Pyx_PyInt_AsInt ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble ( PyObject * ) ;
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE long __Pyx_PyInt_AsLong ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong ( PyObject * ) ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
static int __Pyx_check_binary_version ( void ) ;
static PyTypeObject * __Pyx_ImportType ( const char * module_name , const char * class_name , size_t size , int strict ) ; /*proto*/
2010-09-06 22:15:53 +08:00
static PyObject * __Pyx_ImportModule ( const char * name ) ; /*proto*/
2011-09-03 19:28:32 +08:00
static void __Pyx_AddTraceback ( const char * funcname , int __pyx_clineno ,
int __pyx_lineno , const char * __pyx_filename ) ; /*proto*/
2010-09-06 22:15:53 +08:00
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) ; /*proto*/
2011-09-03 19:28:32 +08:00
/* Module declarations from 'cpython.buffer' */
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
/* Module declarations from 'cpython.ref' */
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* Module declarations from 'libc.stdio' */
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
/* Module declarations from 'cpython.object' */
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* Module declarations from 'libc.stdlib' */
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* Module declarations from 'numpy' */
/* Module declarations from 'numpy' */
2010-09-06 22:15:53 +08:00
static PyTypeObject * __pyx_ptype_5numpy_dtype = 0 ;
2010-09-15 04:02:44 +08:00
static PyTypeObject * __pyx_ptype_5numpy_flatiter = 0 ;
static PyTypeObject * __pyx_ptype_5numpy_broadcast = 0 ;
2010-09-06 22:15:53 +08:00
static PyTypeObject * __pyx_ptype_5numpy_ndarray = 0 ;
2010-09-15 04:02:44 +08:00
static PyTypeObject * __pyx_ptype_5numpy_ufunc = 0 ;
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew1 ( PyObject * ) ; /*proto*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew2 ( PyObject * , PyObject * ) ; /*proto*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew3 ( PyObject * , PyObject * , PyObject * ) ; /*proto*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew4 ( PyObject * , PyObject * , PyObject * , PyObject * ) ; /*proto*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew5 ( PyObject * , PyObject * , PyObject * , PyObject * , PyObject * ) ; /*proto*/
static CYTHON_INLINE char * __pyx_f_5numpy__util_dtypestring ( PyArray_Descr * , char * , char * , int * ) ; /*proto*/
static CYTHON_INLINE void __pyx_f_5numpy_set_array_base ( PyArrayObject * , PyObject * ) ; /*proto*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_get_array_base ( PyArrayObject * ) ; /*proto*/
2010-11-05 21:54:09 +08:00
2011-09-03 19:28:32 +08:00
/* Module declarations from 'cython.cython.view' */
/* Module declarations from 'cython' */
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* Module declarations from 'sklearn.utils.arrayfuncs' */
static float __pyx_f_7sklearn_5utils_10arrayfuncs__float_min_pos ( float * , Py_ssize_t ) ; /*proto*/
static double __pyx_f_7sklearn_5utils_10arrayfuncs__double_min_pos ( double * , Py_ssize_t ) ; /*proto*/
# define __Pyx_MODULE_NAME "sklearn.utils.arrayfuncs"
int __pyx_module_is_main_sklearn__utils__arrayfuncs = 0 ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* Implementation of 'sklearn.utils.arrayfuncs' */
2010-09-06 22:15:53 +08:00
static PyObject * __pyx_builtin_ValueError ;
2010-11-05 21:54:09 +08:00
static PyObject * __pyx_builtin_range ;
2010-09-06 22:15:53 +08:00
static PyObject * __pyx_builtin_RuntimeError ;
2010-11-05 21:54:09 +08:00
static char __pyx_k_1 [ ] = " Unsupported dtype for array X " ;
2011-09-03 19:28:32 +08:00
static char __pyx_k_3 [ ] = " Unsupported or inconsistent dtype in arrays X, y " ;
static char __pyx_k_5 [ ] = " ndarray is not C contiguous " ;
static char __pyx_k_7 [ ] = " ndarray is not Fortran contiguous " ;
static char __pyx_k_9 [ ] = " Non-native byte order not supported " ;
static char __pyx_k_11 [ ] = " unknown dtype code in numpy.pxd (%d) " ;
static char __pyx_k_12 [ ] = " Format string allocated too short, see comment in numpy.pxd " ;
static char __pyx_k_15 [ ] = " Format string allocated too short. " ;
static char __pyx_k_17 [ ] = " \n Small collection of auxiliary functions that operate on arrays \n \n " ;
static char __pyx_k_18 [ ] = " sklearn.utils.arrayfuncs " ;
2010-09-15 04:02:44 +08:00
static char __pyx_k__B [ ] = " B " ;
static char __pyx_k__H [ ] = " H " ;
static char __pyx_k__I [ ] = " I " ;
static char __pyx_k__L [ ] = " L " ;
static char __pyx_k__O [ ] = " O " ;
static char __pyx_k__Q [ ] = " Q " ;
static char __pyx_k__X [ ] = " X " ;
static char __pyx_k__b [ ] = " b " ;
static char __pyx_k__d [ ] = " d " ;
static char __pyx_k__f [ ] = " f " ;
static char __pyx_k__g [ ] = " g " ;
static char __pyx_k__h [ ] = " h " ;
static char __pyx_k__i [ ] = " i " ;
static char __pyx_k__l [ ] = " l " ;
static char __pyx_k__q [ ] = " q " ;
static char __pyx_k__y [ ] = " y " ;
static char __pyx_k__Zd [ ] = " Zd " ;
static char __pyx_k__Zf [ ] = " Zf " ;
static char __pyx_k__Zg [ ] = " Zg " ;
static char __pyx_k__np [ ] = " np " ;
2010-11-05 21:54:09 +08:00
static char __pyx_k__name [ ] = " name " ;
static char __pyx_k__size [ ] = " size " ;
static char __pyx_k__dtype [ ] = " dtype " ;
2010-09-15 04:02:44 +08:00
static char __pyx_k__numpy [ ] = " numpy " ;
static char __pyx_k__range [ ] = " range " ;
2010-09-15 04:45:56 +08:00
static char __pyx_k__go_out [ ] = " go_out " ;
2010-11-05 21:54:09 +08:00
static char __pyx_k__float32 [ ] = " float32 " ;
static char __pyx_k__float64 [ ] = " float64 " ;
static char __pyx_k__min_pos [ ] = " min_pos " ;
2010-09-15 04:02:44 +08:00
static char __pyx_k____main__ [ ] = " __main__ " ;
static char __pyx_k____test__ [ ] = " __test__ " ;
static char __pyx_k__ValueError [ ] = " ValueError " ;
static char __pyx_k__RuntimeError [ ] = " RuntimeError " ;
2011-09-03 19:28:32 +08:00
static char __pyx_k__cholesky_delete [ ] = " cholesky_delete " ;
2010-09-15 04:02:44 +08:00
static char __pyx_k__solve_triangular [ ] = " solve_triangular " ;
2010-11-05 21:54:09 +08:00
static PyObject * __pyx_kp_s_1 ;
2010-11-22 21:56:37 +08:00
static PyObject * __pyx_kp_u_11 ;
2011-09-03 19:28:32 +08:00
static PyObject * __pyx_kp_u_12 ;
static PyObject * __pyx_kp_u_15 ;
static PyObject * __pyx_n_s_18 ;
static PyObject * __pyx_kp_s_3 ;
2010-09-15 04:02:44 +08:00
static PyObject * __pyx_kp_u_5 ;
2010-11-05 21:54:09 +08:00
static PyObject * __pyx_kp_u_7 ;
2011-09-03 19:28:32 +08:00
static PyObject * __pyx_kp_u_9 ;
2010-09-15 04:45:56 +08:00
static PyObject * __pyx_n_s__L ;
2010-09-15 04:02:44 +08:00
static PyObject * __pyx_n_s__RuntimeError ;
static PyObject * __pyx_n_s__ValueError ;
static PyObject * __pyx_n_s__X ;
static PyObject * __pyx_n_s____main__ ;
static PyObject * __pyx_n_s____test__ ;
2011-09-03 19:28:32 +08:00
static PyObject * __pyx_n_s__cholesky_delete ;
2010-11-05 21:54:09 +08:00
static PyObject * __pyx_n_s__dtype ;
static PyObject * __pyx_n_s__float32 ;
static PyObject * __pyx_n_s__float64 ;
2010-09-15 04:45:56 +08:00
static PyObject * __pyx_n_s__go_out ;
2010-11-05 21:54:09 +08:00
static PyObject * __pyx_n_s__min_pos ;
static PyObject * __pyx_n_s__name ;
2010-09-15 04:02:44 +08:00
static PyObject * __pyx_n_s__np ;
static PyObject * __pyx_n_s__numpy ;
static PyObject * __pyx_n_s__range ;
2010-11-05 21:54:09 +08:00
static PyObject * __pyx_n_s__size ;
2010-09-15 04:02:44 +08:00
static PyObject * __pyx_n_s__solve_triangular ;
static PyObject * __pyx_n_s__y ;
static PyObject * __pyx_int_15 ;
2011-09-03 19:28:32 +08:00
static PyObject * __pyx_k_tuple_2 ;
static PyObject * __pyx_k_tuple_4 ;
static PyObject * __pyx_k_tuple_6 ;
static PyObject * __pyx_k_tuple_8 ;
static PyObject * __pyx_k_tuple_10 ;
static PyObject * __pyx_k_tuple_13 ;
static PyObject * __pyx_k_tuple_14 ;
static PyObject * __pyx_k_tuple_16 ;
/* "sklearn/utils/arrayfuncs.pyx":47
2010-09-06 22:15:53 +08:00
*
*
2010-11-05 21:54:09 +08:00
* def min_pos ( np . ndarray X ) : # < < < < < < < < < < < < < <
* " " "
* Find the minimum value of an array over positivie values
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
static PyObject * __pyx_pf_7sklearn_5utils_10arrayfuncs_min_pos ( PyObject * __pyx_self , PyObject * __pyx_v_X ) ; /*proto*/
static char __pyx_doc_7sklearn_5utils_10arrayfuncs_min_pos [ ] = " \n Find the minimum value of an array over positivie values \n \n Returns a huge value if none of the values are positive \n " ;
static PyMethodDef __pyx_mdef_7sklearn_5utils_10arrayfuncs_min_pos = { __Pyx_NAMESTR ( " min_pos " ) , ( PyCFunction ) __pyx_pf_7sklearn_5utils_10arrayfuncs_min_pos , METH_O , __Pyx_DOCSTR ( __pyx_doc_7sklearn_5utils_10arrayfuncs_min_pos ) } ;
static PyObject * __pyx_pf_7sklearn_5utils_10arrayfuncs_min_pos ( PyObject * __pyx_self , PyObject * __pyx_v_X ) {
2010-09-06 22:15:53 +08:00
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-11-05 21:54:09 +08:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
2010-09-06 22:15:53 +08:00
int __pyx_t_3 ;
2010-11-05 21:54:09 +08:00
Py_ssize_t __pyx_t_4 ;
2011-09-03 19:28:32 +08:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-11-05 21:54:09 +08:00
__Pyx_RefNannySetupContext ( " min_pos " ) ;
2010-09-06 22:15:53 +08:00
__pyx_self = __pyx_self ;
2010-11-22 21:56:37 +08:00
if ( unlikely ( ! __Pyx_ArgTypeTest ( ( ( PyObject * ) __pyx_v_X ) , __pyx_ptype_5numpy_ndarray , 1 , " X " , 0 ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 47 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":53
2010-11-22 21:56:37 +08:00
* Returns a huge value if none of the values are positive
2010-11-05 21:54:09 +08:00
* " " "
* if X . dtype . name = = ' float32 ' : # < < < < < < < < < < < < < <
* return _float_min_pos ( < float * > X . data , X . size )
* elif X . dtype . name = = ' float64 ' :
2010-09-06 22:15:53 +08:00
*/
2010-11-22 21:56:37 +08:00
__pyx_t_1 = PyObject_GetAttr ( __pyx_v_X , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 53 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2010-11-22 21:56:37 +08:00
__pyx_t_2 = PyObject_GetAttr ( __pyx_t_1 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 53 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = __Pyx_PyString_Equals ( __pyx_t_2 , ( ( PyObject * ) __pyx_n_s__float32 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_3 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 53 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
if ( __pyx_t_3 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":54
2010-11-05 21:54:09 +08:00
* " " "
* if X . dtype . name = = ' float32 ' :
* return _float_min_pos ( < float * > X . data , X . size ) # < < < < < < < < < < < < < <
* elif X . dtype . name = = ' float64 ' :
* return _double_min_pos ( < double * > X . data , X . size )
*/
__Pyx_XDECREF ( __pyx_r ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_2 = PyObject_GetAttr ( __pyx_v_X , __pyx_n_s__size ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 54 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_t_4 = __Pyx_PyIndex_AsSsize_t ( __pyx_t_2 ) ; if ( unlikely ( ( __pyx_t_4 = = ( Py_ssize_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 54 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
__pyx_t_2 = PyFloat_FromDouble ( __pyx_f_7sklearn_5utils_10arrayfuncs__float_min_pos ( ( ( float * ) ( ( PyArrayObject * ) __pyx_v_X ) - > data ) , __pyx_t_4 ) ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 54 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_2 ) ;
__pyx_r = __pyx_t_2 ;
__pyx_t_2 = 0 ;
2010-11-05 21:54:09 +08:00
goto __pyx_L0 ;
goto __pyx_L5 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":55
2010-11-05 21:54:09 +08:00
* if X . dtype . name = = ' float32 ' :
* return _float_min_pos ( < float * > X . data , X . size )
* elif X . dtype . name = = ' float64 ' : # < < < < < < < < < < < < < <
* return _double_min_pos ( < double * > X . data , X . size )
* else :
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
__pyx_t_2 = PyObject_GetAttr ( __pyx_v_X , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyObject_GetAttr ( __pyx_t_2 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = __Pyx_PyString_Equals ( __pyx_t_1 , ( ( PyObject * ) __pyx_n_s__float64 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_3 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 55 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
if ( __pyx_t_3 ) {
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":56
2010-11-05 21:54:09 +08:00
* return _float_min_pos ( < float * > X . data , X . size )
* elif X . dtype . name = = ' float64 ' :
* return _double_min_pos ( < double * > X . data , X . size ) # < < < < < < < < < < < < < <
* else :
* raise ValueError ( ' Unsupported dtype for array X ' )
*/
__Pyx_XDECREF ( __pyx_r ) ;
2010-11-22 21:56:37 +08:00
__pyx_t_1 = PyObject_GetAttr ( __pyx_v_X , __pyx_n_s__size ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 56 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2010-11-22 21:56:37 +08:00
__pyx_t_4 = __Pyx_PyIndex_AsSsize_t ( __pyx_t_1 ) ; if ( unlikely ( ( __pyx_t_4 = = ( Py_ssize_t ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 56 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyFloat_FromDouble ( __pyx_f_7sklearn_5utils_10arrayfuncs__double_min_pos ( ( ( double * ) ( ( PyArrayObject * ) __pyx_v_X ) - > data ) , __pyx_t_4 ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 56 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
goto __pyx_L5 ;
2010-09-15 04:02:44 +08:00
}
2010-11-05 21:54:09 +08:00
/*else*/ {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":58
2010-11-05 21:54:09 +08:00
* return _double_min_pos ( < double * > X . data , X . size )
* else :
* raise ValueError ( ' Unsupported dtype for array X ' ) # < < < < < < < < < < < < < <
*
2010-09-06 22:15:53 +08:00
*
*/
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_k_tuple_2 ) , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 58 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-05 21:54:09 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_1 , 0 , 0 , 0 ) ;
2010-11-05 21:54:09 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2010-11-22 21:56:37 +08:00
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 58 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
}
2010-11-05 21:54:09 +08:00
__pyx_L5 : ;
2010-09-06 22:15:53 +08:00
2010-11-05 21:54:09 +08:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " sklearn.utils.arrayfuncs.min_pos " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-11-05 21:54:09 +08:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":61
2010-09-06 22:15:53 +08:00
*
2010-11-05 21:54:09 +08:00
*
* cdef float _float_min_pos ( float * X , Py_ssize_t size ) : # < < < < < < < < < < < < < <
* cdef Py_ssize_t i
* cdef float min_val = DBL_MAX
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
static float __pyx_f_7sklearn_5utils_10arrayfuncs__float_min_pos ( float * __pyx_v_X , Py_ssize_t __pyx_v_size ) {
2010-11-05 21:54:09 +08:00
Py_ssize_t __pyx_v_i ;
float __pyx_v_min_val ;
float __pyx_r ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-11-05 21:54:09 +08:00
Py_ssize_t __pyx_t_1 ;
Py_ssize_t __pyx_t_2 ;
int __pyx_t_3 ;
int __pyx_t_4 ;
int __pyx_t_5 ;
__Pyx_RefNannySetupContext ( " _float_min_pos " ) ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":63
2010-11-05 21:54:09 +08:00
* cdef float _float_min_pos ( float * X , Py_ssize_t size ) :
* cdef Py_ssize_t i
* cdef float min_val = DBL_MAX # < < < < < < < < < < < < < <
* for i in range ( size ) :
* if X [ i ] > 0. and X [ i ] < min_val :
*/
__pyx_v_min_val = DBL_MAX ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":64
2010-11-05 21:54:09 +08:00
* cdef Py_ssize_t i
* cdef float min_val = DBL_MAX
* for i in range ( size ) : # < < < < < < < < < < < < < <
* if X [ i ] > 0. and X [ i ] < min_val :
* min_val = X [ i ]
*/
__pyx_t_1 = __pyx_v_size ;
for ( __pyx_t_2 = 0 ; __pyx_t_2 < __pyx_t_1 ; __pyx_t_2 + = 1 ) {
__pyx_v_i = __pyx_t_2 ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":65
2010-11-05 21:54:09 +08:00
* cdef float min_val = DBL_MAX
* for i in range ( size ) :
* if X [ i ] > 0. and X [ i ] < min_val : # < < < < < < < < < < < < < <
* min_val = X [ i ]
* return min_val
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = ( ( __pyx_v_X [ __pyx_v_i ] ) > 0. ) ;
2010-11-05 21:54:09 +08:00
if ( __pyx_t_3 ) {
__pyx_t_4 = ( ( __pyx_v_X [ __pyx_v_i ] ) < __pyx_v_min_val ) ;
__pyx_t_5 = __pyx_t_4 ;
} else {
__pyx_t_5 = __pyx_t_3 ;
}
if ( __pyx_t_5 ) {
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":66
2010-11-05 21:54:09 +08:00
* for i in range ( size ) :
* if X [ i ] > 0. and X [ i ] < min_val :
* min_val = X [ i ] # < < < < < < < < < < < < < <
* return min_val
2010-09-06 22:15:53 +08:00
*
2010-11-05 21:54:09 +08:00
*/
__pyx_v_min_val = ( __pyx_v_X [ __pyx_v_i ] ) ;
goto __pyx_L5 ;
2010-09-15 04:02:44 +08:00
}
2010-11-05 21:54:09 +08:00
__pyx_L5 : ;
}
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":67
2010-11-05 21:54:09 +08:00
* if X [ i ] > 0. and X [ i ] < min_val :
* min_val = X [ i ]
* return min_val # < < < < < < < < < < < < < <
*
2010-09-15 04:02:44 +08:00
*
*/
2010-11-05 21:54:09 +08:00
__pyx_r = __pyx_v_min_val ;
goto __pyx_L0 ;
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":70
2010-09-15 04:02:44 +08:00
*
*
2010-11-05 21:54:09 +08:00
* cdef double _double_min_pos ( double * X , Py_ssize_t size ) : # < < < < < < < < < < < < < <
* cdef Py_ssize_t i
* cdef np . float64_t min_val = FLT_MAX
2010-09-15 04:02:44 +08:00
*/
2010-11-05 21:54:09 +08:00
2011-09-03 19:28:32 +08:00
static double __pyx_f_7sklearn_5utils_10arrayfuncs__double_min_pos ( double * __pyx_v_X , Py_ssize_t __pyx_v_size ) {
2010-11-05 21:54:09 +08:00
Py_ssize_t __pyx_v_i ;
__pyx_t_5numpy_float64_t __pyx_v_min_val ;
double __pyx_r ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-11-05 21:54:09 +08:00
Py_ssize_t __pyx_t_1 ;
Py_ssize_t __pyx_t_2 ;
int __pyx_t_3 ;
int __pyx_t_4 ;
int __pyx_t_5 ;
__Pyx_RefNannySetupContext ( " _double_min_pos " ) ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":72
2010-11-05 21:54:09 +08:00
* cdef double _double_min_pos ( double * X , Py_ssize_t size ) :
* cdef Py_ssize_t i
* cdef np . float64_t min_val = FLT_MAX # < < < < < < < < < < < < < <
* for i in range ( size ) :
* if X [ i ] > 0. and X [ i ] < min_val :
*/
__pyx_v_min_val = FLT_MAX ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":73
2010-11-05 21:54:09 +08:00
* cdef Py_ssize_t i
* cdef np . float64_t min_val = FLT_MAX
* for i in range ( size ) : # < < < < < < < < < < < < < <
* if X [ i ] > 0. and X [ i ] < min_val :
* min_val = X [ i ]
*/
__pyx_t_1 = __pyx_v_size ;
for ( __pyx_t_2 = 0 ; __pyx_t_2 < __pyx_t_1 ; __pyx_t_2 + = 1 ) {
__pyx_v_i = __pyx_t_2 ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":74
2010-11-05 21:54:09 +08:00
* cdef np . float64_t min_val = FLT_MAX
* for i in range ( size ) :
* if X [ i ] > 0. and X [ i ] < min_val : # < < < < < < < < < < < < < <
* min_val = X [ i ]
* return min_val
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = ( ( __pyx_v_X [ __pyx_v_i ] ) > 0. ) ;
2010-11-05 21:54:09 +08:00
if ( __pyx_t_3 ) {
__pyx_t_4 = ( ( __pyx_v_X [ __pyx_v_i ] ) < __pyx_v_min_val ) ;
__pyx_t_5 = __pyx_t_4 ;
} else {
__pyx_t_5 = __pyx_t_3 ;
2010-09-15 04:02:44 +08:00
}
2010-11-05 21:54:09 +08:00
if ( __pyx_t_5 ) {
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":75
2010-11-05 21:54:09 +08:00
* for i in range ( size ) :
* if X [ i ] > 0. and X [ i ] < min_val :
* min_val = X [ i ] # < < < < < < < < < < < < < <
* return min_val
*
*/
__pyx_v_min_val = ( __pyx_v_X [ __pyx_v_i ] ) ;
goto __pyx_L5 ;
}
__pyx_L5 : ;
2010-09-15 04:02:44 +08:00
}
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":76
2010-11-05 21:54:09 +08:00
* if X [ i ] > 0. and X [ i ] < min_val :
* min_val = X [ i ]
* return min_val # < < < < < < < < < < < < < <
*
2010-11-22 21:56:37 +08:00
* def solve_triangular ( np . ndarray X , np . ndarray y ) :
2010-11-05 21:54:09 +08:00
*/
__pyx_r = __pyx_v_min_val ;
2010-09-15 04:02:44 +08:00
goto __pyx_L0 ;
2010-11-05 21:54:09 +08:00
__pyx_r = 0 ;
2010-09-15 04:02:44 +08:00
__pyx_L0 : ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":78
2010-11-22 21:56:37 +08:00
* return min_val
*
* def solve_triangular ( np . ndarray X , np . ndarray y ) : # < < < < < < < < < < < < < <
* " " "
* Solves a triangular system ( overwrites y )
2010-09-15 04:02:44 +08:00
*/
2011-09-03 19:28:32 +08:00
static PyObject * __pyx_pf_7sklearn_5utils_10arrayfuncs_1solve_triangular ( PyObject * __pyx_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static char __pyx_doc_7sklearn_5utils_10arrayfuncs_1solve_triangular [ ] = " \n Solves a triangular system (overwrites y) \n \n Note: The lapack function to solve triangular systems was added to \n scipy v0.9. Remove this when we stop supporting earlier versions. \n " ;
static PyMethodDef __pyx_mdef_7sklearn_5utils_10arrayfuncs_1solve_triangular = { __Pyx_NAMESTR ( " solve_triangular " ) , ( PyCFunction ) __pyx_pf_7sklearn_5utils_10arrayfuncs_1solve_triangular , METH_VARARGS | METH_KEYWORDS , __Pyx_DOCSTR ( __pyx_doc_7sklearn_5utils_10arrayfuncs_1solve_triangular ) } ;
static PyObject * __pyx_pf_7sklearn_5utils_10arrayfuncs_1solve_triangular ( PyObject * __pyx_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2010-09-15 04:02:44 +08:00
PyArrayObject * __pyx_v_X = 0 ;
PyArrayObject * __pyx_v_y = 0 ;
int __pyx_v_lda ;
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-11-22 21:56:37 +08:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
int __pyx_t_3 ;
int __pyx_t_4 ;
int __pyx_t_5 ;
2011-09-03 19:28:32 +08:00
size_t __pyx_t_6 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s__X , & __pyx_n_s__y , 0 } ;
__Pyx_RefNannySetupContext ( " solve_triangular " ) ;
__pyx_self = __pyx_self ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args = PyDict_Size ( __pyx_kwds ) ;
PyObject * values [ 2 ] = { 0 , 0 } ;
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
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 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
case 0 :
values [ 0 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__X ) ;
if ( likely ( values [ 0 ] ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__y ) ;
if ( likely ( values [ 1 ] ) ) kw_args - - ;
else {
2010-11-22 21:56:37 +08:00
__Pyx_RaiseArgtupleInvalid ( " solve_triangular " , 1 , 2 , 2 , 1 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 78 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
}
if ( unlikely ( kw_args > 0 ) ) {
2010-11-22 21:56:37 +08:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , PyTuple_GET_SIZE ( __pyx_args ) , " solve_triangular " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 78 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-15 04:02:44 +08:00
}
__pyx_v_X = ( ( PyArrayObject * ) values [ 0 ] ) ;
__pyx_v_y = ( ( PyArrayObject * ) values [ 1 ] ) ;
} else if ( PyTuple_GET_SIZE ( __pyx_args ) ! = 2 ) {
goto __pyx_L5_argtuple_error ;
} else {
__pyx_v_X = ( ( PyArrayObject * ) PyTuple_GET_ITEM ( __pyx_args , 0 ) ) ;
__pyx_v_y = ( ( PyArrayObject * ) PyTuple_GET_ITEM ( __pyx_args , 1 ) ) ;
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2010-11-22 21:56:37 +08:00
__Pyx_RaiseArgtupleInvalid ( " solve_triangular " , 1 , 2 , 2 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 78 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-15 04:02:44 +08:00
__pyx_L3_error : ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " sklearn.utils.arrayfuncs.solve_triangular " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__Pyx_RefNannyFinishContext ( ) ;
2010-09-15 04:02:44 +08:00
return NULL ;
__pyx_L4_argument_unpacking_done : ;
2010-11-22 21:56:37 +08:00
if ( unlikely ( ! __Pyx_ArgTypeTest ( ( ( PyObject * ) __pyx_v_X ) , __pyx_ptype_5numpy_ndarray , 1 , " X " , 0 ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 78 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
if ( unlikely ( ! __Pyx_ArgTypeTest ( ( ( PyObject * ) __pyx_v_y ) , __pyx_ptype_5numpy_ndarray , 1 , " y " , 0 ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 78 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":87
2010-11-22 21:56:37 +08:00
* cdef int lda
*
* if X . dtype . name = = ' float64 ' and y . dtype . name = = ' float64 ' : # < < < < < < < < < < < < < <
* lda = < int > X . strides [ 0 ] / sizeof ( double )
*
*/
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_X ) , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 87 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_t_2 = PyObject_GetAttr ( __pyx_t_1 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 87 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = __Pyx_PyString_Equals ( __pyx_t_2 , ( ( PyObject * ) __pyx_n_s__float64 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_3 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 87 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
if ( __pyx_t_3 ) {
2011-09-03 19:28:32 +08:00
__pyx_t_2 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_y ) , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 87 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyObject_GetAttr ( __pyx_t_2 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 87 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_4 = __Pyx_PyString_Equals ( __pyx_t_1 , ( ( PyObject * ) __pyx_n_s__float64 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_4 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 87 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__pyx_t_5 = __pyx_t_4 ;
} else {
__pyx_t_5 = __pyx_t_3 ;
2010-09-15 04:02:44 +08:00
}
2010-11-22 21:56:37 +08:00
if ( __pyx_t_5 ) {
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":88
2010-11-22 21:56:37 +08:00
*
* if X . dtype . name = = ' float64 ' and y . dtype . name = = ' float64 ' :
* lda = < int > X . strides [ 0 ] / sizeof ( double ) # < < < < < < < < < < < < < <
*
* cblas_dtrsv ( CblasRowMajor , CblasLower , CblasNoTrans ,
*/
2011-09-03 19:28:32 +08:00
__pyx_t_6 = ( sizeof ( double ) ) ;
if ( unlikely ( __pyx_t_6 = = 0 ) ) {
2010-11-22 21:56:37 +08:00
PyErr_Format ( PyExc_ZeroDivisionError , " integer division or modulo by zero " ) ;
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 88 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
}
2011-09-03 19:28:32 +08:00
__pyx_v_lda = ( ( ( int ) ( __pyx_v_X - > strides [ 0 ] ) ) / __pyx_t_6 ) ;
2010-11-22 21:56:37 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":92
2010-11-22 21:56:37 +08:00
* cblas_dtrsv ( CblasRowMajor , CblasLower , CblasNoTrans ,
* CblasNonUnit , < int > X . shape [ 0 ] , < double * > X . data ,
* lda , < double * > y . data , 1 ) ; # < < < < < < < < < < < < < <
*
* elif X . dtype . name = = ' float32 ' and y . dtype . name = = ' float32 ' :
*/
cblas_dtrsv ( CblasRowMajor , CblasLower , CblasNoTrans , CblasNonUnit , ( ( int ) ( __pyx_v_X - > dimensions [ 0 ] ) ) , ( ( double * ) __pyx_v_X - > data ) , __pyx_v_lda , ( ( double * ) __pyx_v_y - > data ) , 1 ) ;
goto __pyx_L6 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":94
2010-11-22 21:56:37 +08:00
* lda , < double * > y . data , 1 ) ;
*
* elif X . dtype . name = = ' float32 ' and y . dtype . name = = ' float32 ' : # < < < < < < < < < < < < < <
* lda = < int > X . strides [ 0 ] / sizeof ( float )
2010-09-15 04:02:44 +08:00
*
2010-09-06 22:15:53 +08:00
*/
2010-11-22 21:56:37 +08:00
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_X ) , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 94 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_t_2 = PyObject_GetAttr ( __pyx_t_1 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 94 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = __Pyx_PyString_Equals ( __pyx_t_2 , ( ( PyObject * ) __pyx_n_s__float32 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_5 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 94 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
if ( __pyx_t_5 ) {
2011-09-03 19:28:32 +08:00
__pyx_t_2 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_y ) , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 94 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyObject_GetAttr ( __pyx_t_2 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 94 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = __Pyx_PyString_Equals ( __pyx_t_1 , ( ( PyObject * ) __pyx_n_s__float32 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_3 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 94 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
__pyx_t_4 = __pyx_t_3 ;
} else {
__pyx_t_4 = __pyx_t_5 ;
2010-09-06 22:15:53 +08:00
}
2010-11-22 21:56:37 +08:00
if ( __pyx_t_4 ) {
2010-09-15 04:02:44 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":95
2010-09-15 04:45:56 +08:00
*
2010-11-22 21:56:37 +08:00
* elif X . dtype . name = = ' float32 ' and y . dtype . name = = ' float32 ' :
* lda = < int > X . strides [ 0 ] / sizeof ( float ) # < < < < < < < < < < < < < <
2010-09-15 04:45:56 +08:00
*
2010-11-22 21:56:37 +08:00
* cblas_strsv ( CblasRowMajor , CblasLower , CblasNoTrans ,
2010-09-15 04:02:44 +08:00
*/
2011-09-03 19:28:32 +08:00
__pyx_t_6 = ( sizeof ( float ) ) ;
if ( unlikely ( __pyx_t_6 = = 0 ) ) {
2010-11-22 21:56:37 +08:00
PyErr_Format ( PyExc_ZeroDivisionError , " integer division or modulo by zero " ) ;
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 95 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
}
2011-09-03 19:28:32 +08:00
__pyx_v_lda = ( ( ( int ) ( __pyx_v_X - > strides [ 0 ] ) ) / __pyx_t_6 ) ;
2010-11-22 21:56:37 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":99
2010-11-22 21:56:37 +08:00
* cblas_strsv ( CblasRowMajor , CblasLower , CblasNoTrans ,
* CblasNonUnit , < int > X . shape [ 0 ] , < float * > X . data ,
* lda , < float * > y . data , 1 ) ; # < < < < < < < < < < < < < <
* else :
* raise ValueError ( ' Unsupported or inconsistent dtype in arrays X , y ' )
*/
cblas_strsv ( CblasRowMajor , CblasLower , CblasNoTrans , CblasNonUnit , ( ( int ) ( __pyx_v_X - > dimensions [ 0 ] ) ) , ( ( float * ) __pyx_v_X - > data ) , __pyx_v_lda , ( ( float * ) __pyx_v_y - > data ) , 1 ) ;
goto __pyx_L6 ;
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":101
2010-11-22 21:56:37 +08:00
* lda , < float * > y . data , 1 ) ;
* else :
* raise ValueError ( ' Unsupported or inconsistent dtype in arrays X , y ' ) # < < < < < < < < < < < < < <
*
*
*/
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_k_tuple_4 ) , NULL ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 101 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_1 , 0 , 0 , 0 ) ;
2010-11-22 21:56:37 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 101 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
}
__pyx_L6 : ;
2010-09-06 22:15:53 +08:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2010-11-22 21:56:37 +08:00
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " sklearn.utils.arrayfuncs.solve_triangular " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-06 22:15:53 +08:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannyFinishContext ( ) ;
2010-09-06 22:15:53 +08:00
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":104
2010-11-22 21:56:37 +08:00
*
2010-09-15 04:45:56 +08:00
*
2010-11-22 21:56:37 +08:00
* def cholesky_delete ( np . ndarray L , int go_out ) : # < < < < < < < < < < < < < <
2010-09-15 04:45:56 +08:00
*
2010-11-22 21:56:37 +08:00
* cdef int n = < int > L . shape [ 0 ]
2010-09-15 04:45:56 +08:00
*/
2011-09-03 19:28:32 +08:00
static PyObject * __pyx_pf_7sklearn_5utils_10arrayfuncs_2cholesky_delete ( PyObject * __pyx_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) ; /*proto*/
static PyMethodDef __pyx_mdef_7sklearn_5utils_10arrayfuncs_2cholesky_delete = { __Pyx_NAMESTR ( " cholesky_delete " ) , ( PyCFunction ) __pyx_pf_7sklearn_5utils_10arrayfuncs_2cholesky_delete , METH_VARARGS | METH_KEYWORDS , __Pyx_DOCSTR ( 0 ) } ;
static PyObject * __pyx_pf_7sklearn_5utils_10arrayfuncs_2cholesky_delete ( PyObject * __pyx_self , PyObject * __pyx_args , PyObject * __pyx_kwds ) {
2010-09-15 04:45:56 +08:00
PyArrayObject * __pyx_v_L = 0 ;
int __pyx_v_go_out ;
int __pyx_v_n ;
int __pyx_v_m ;
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-11-22 21:56:37 +08:00
PyObject * __pyx_t_1 = NULL ;
PyObject * __pyx_t_2 = NULL ;
int __pyx_t_3 ;
2011-09-03 19:28:32 +08:00
size_t __pyx_t_4 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:45:56 +08:00
static PyObject * * __pyx_pyargnames [ ] = { & __pyx_n_s__L , & __pyx_n_s__go_out , 0 } ;
__Pyx_RefNannySetupContext ( " cholesky_delete " ) ;
__pyx_self = __pyx_self ;
if ( unlikely ( __pyx_kwds ) ) {
Py_ssize_t kw_args = PyDict_Size ( __pyx_kwds ) ;
PyObject * values [ 2 ] = { 0 , 0 } ;
switch ( PyTuple_GET_SIZE ( __pyx_args ) ) {
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_n_s__L ) ;
if ( likely ( values [ 0 ] ) ) kw_args - - ;
else goto __pyx_L5_argtuple_error ;
case 1 :
values [ 1 ] = PyDict_GetItem ( __pyx_kwds , __pyx_n_s__go_out ) ;
if ( likely ( values [ 1 ] ) ) kw_args - - ;
else {
2010-11-22 21:56:37 +08:00
__Pyx_RaiseArgtupleInvalid ( " cholesky_delete " , 1 , 2 , 2 , 1 ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-15 04:45:56 +08:00
}
}
if ( unlikely ( kw_args > 0 ) ) {
2010-11-22 21:56:37 +08:00
if ( unlikely ( __Pyx_ParseOptionalKeywords ( __pyx_kwds , __pyx_pyargnames , 0 , values , PyTuple_GET_SIZE ( __pyx_args ) , " cholesky_delete " ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-15 04:45:56 +08:00
}
__pyx_v_L = ( ( PyArrayObject * ) values [ 0 ] ) ;
2010-11-22 21:56:37 +08:00
__pyx_v_go_out = __Pyx_PyInt_AsInt ( values [ 1 ] ) ; if ( unlikely ( ( __pyx_v_go_out = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-15 04:45:56 +08:00
} else if ( PyTuple_GET_SIZE ( __pyx_args ) ! = 2 ) {
goto __pyx_L5_argtuple_error ;
} else {
__pyx_v_L = ( ( PyArrayObject * ) PyTuple_GET_ITEM ( __pyx_args , 0 ) ) ;
2010-11-22 21:56:37 +08:00
__pyx_v_go_out = __Pyx_PyInt_AsInt ( PyTuple_GET_ITEM ( __pyx_args , 1 ) ) ; if ( unlikely ( ( __pyx_v_go_out = = ( int ) - 1 ) & & PyErr_Occurred ( ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-15 04:45:56 +08:00
}
goto __pyx_L4_argument_unpacking_done ;
__pyx_L5_argtuple_error : ;
2010-11-22 21:56:37 +08:00
__Pyx_RaiseArgtupleInvalid ( " cholesky_delete " , 1 , 2 , 2 , PyTuple_GET_SIZE ( __pyx_args ) ) ; { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L3_error ; }
2010-09-15 04:45:56 +08:00
__pyx_L3_error : ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " sklearn.utils.arrayfuncs.cholesky_delete " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
__Pyx_RefNannyFinishContext ( ) ;
2010-09-15 04:45:56 +08:00
return NULL ;
__pyx_L4_argument_unpacking_done : ;
2010-11-22 21:56:37 +08:00
if ( unlikely ( ! __Pyx_ArgTypeTest ( ( ( PyObject * ) __pyx_v_L ) , __pyx_ptype_5numpy_ndarray , 1 , " L " , 0 ) ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:45:56 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":106
2010-11-22 21:56:37 +08:00
* def cholesky_delete ( np . ndarray L , int go_out ) :
2010-09-15 04:45:56 +08:00
*
* cdef int n = < int > L . shape [ 0 ] # < < < < < < < < < < < < < <
2010-11-22 21:56:37 +08:00
* cdef int m
*
2010-09-15 04:45:56 +08:00
*/
__pyx_v_n = ( ( int ) ( __pyx_v_L - > dimensions [ 0 ] ) ) ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":109
2010-11-22 21:56:37 +08:00
* cdef int m
2010-09-15 04:45:56 +08:00
*
2010-11-22 21:56:37 +08:00
* if L . dtype . name = = ' float64 ' : # < < < < < < < < < < < < < <
* m = < int > L . strides [ 0 ] / sizeof ( double )
* double_cholesky_delete ( m , n , < double * > L . data , go_out )
*/
__pyx_t_1 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_L ) , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 109 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_t_2 = PyObject_GetAttr ( __pyx_t_1 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 109 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_2 ) ;
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = __Pyx_PyString_Equals ( __pyx_t_2 , ( ( PyObject * ) __pyx_n_s__float64 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_3 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 109 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
if ( __pyx_t_3 ) {
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":110
2010-11-22 21:56:37 +08:00
*
* if L . dtype . name = = ' float64 ' :
* m = < int > L . strides [ 0 ] / sizeof ( double ) # < < < < < < < < < < < < < <
* double_cholesky_delete ( m , n , < double * > L . data , go_out )
* elif L . dtype . name = = ' float32 ' :
*/
2011-09-03 19:28:32 +08:00
__pyx_t_4 = ( sizeof ( double ) ) ;
if ( unlikely ( __pyx_t_4 = = 0 ) ) {
2010-11-22 21:56:37 +08:00
PyErr_Format ( PyExc_ZeroDivisionError , " integer division or modulo by zero " ) ;
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 110 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
}
2011-09-03 19:28:32 +08:00
__pyx_v_m = ( ( ( int ) ( __pyx_v_L - > strides [ 0 ] ) ) / __pyx_t_4 ) ;
2010-11-22 21:56:37 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":111
2010-11-22 21:56:37 +08:00
* if L . dtype . name = = ' float64 ' :
* m = < int > L . strides [ 0 ] / sizeof ( double )
* double_cholesky_delete ( m , n , < double * > L . data , go_out ) # < < < < < < < < < < < < < <
* elif L . dtype . name = = ' float32 ' :
* m = < int > L . strides [ 0 ] / sizeof ( float )
*/
double_cholesky_delete ( __pyx_v_m , __pyx_v_n , ( ( double * ) __pyx_v_L - > data ) , __pyx_v_go_out ) ;
goto __pyx_L6 ;
2010-09-15 04:45:56 +08:00
}
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":112
2010-11-22 21:56:37 +08:00
* m = < int > L . strides [ 0 ] / sizeof ( double )
* double_cholesky_delete ( m , n , < double * > L . data , go_out )
* elif L . dtype . name = = ' float32 ' : # < < < < < < < < < < < < < <
* m = < int > L . strides [ 0 ] / sizeof ( float )
* float_cholesky_delete ( m , n , < float * > L . data , go_out )
*/
2011-09-03 19:28:32 +08:00
__pyx_t_2 = PyObject_GetAttr ( ( ( PyObject * ) __pyx_v_L ) , __pyx_n_s__dtype ) ; if ( unlikely ( ! __pyx_t_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 112 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_GOTREF ( __pyx_t_2 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyObject_GetAttr ( __pyx_t_2 , __pyx_n_s__name ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 112 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__Pyx_DECREF ( __pyx_t_2 ) ; __pyx_t_2 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = __Pyx_PyString_Equals ( __pyx_t_1 , ( ( PyObject * ) __pyx_n_s__float32 ) , Py_EQ ) ; if ( unlikely ( __pyx_t_3 < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 112 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-11-22 21:56:37 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
if ( __pyx_t_3 ) {
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":113
2010-11-22 21:56:37 +08:00
* double_cholesky_delete ( m , n , < double * > L . data , go_out )
* elif L . dtype . name = = ' float32 ' :
* m = < int > L . strides [ 0 ] / sizeof ( float ) # < < < < < < < < < < < < < <
* float_cholesky_delete ( m , n , < float * > L . data , go_out )
*
2010-09-15 04:45:56 +08:00
*/
2011-09-03 19:28:32 +08:00
__pyx_t_4 = ( sizeof ( float ) ) ;
if ( unlikely ( __pyx_t_4 = = 0 ) ) {
2010-11-22 21:56:37 +08:00
PyErr_Format ( PyExc_ZeroDivisionError , " integer division or modulo by zero " ) ;
{ __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 113 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
}
2011-09-03 19:28:32 +08:00
__pyx_v_m = ( ( ( int ) ( __pyx_v_L - > strides [ 0 ] ) ) / __pyx_t_4 ) ;
2010-11-22 21:56:37 +08:00
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":114
2010-11-22 21:56:37 +08:00
* elif L . dtype . name = = ' float32 ' :
* m = < int > L . strides [ 0 ] / sizeof ( float )
* float_cholesky_delete ( m , n , < float * > L . data , go_out ) # < < < < < < < < < < < < < <
*
*/
float_cholesky_delete ( __pyx_v_m , __pyx_v_n , ( ( float * ) __pyx_v_L - > data ) , __pyx_v_go_out ) ;
goto __pyx_L6 ;
}
__pyx_L6 : ;
2010-09-15 04:45:56 +08:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2010-11-22 21:56:37 +08:00
__Pyx_XDECREF ( __pyx_t_1 ) ;
__Pyx_XDECREF ( __pyx_t_2 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " sklearn.utils.arrayfuncs.cholesky_delete " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:45:56 +08:00
__pyx_r = NULL ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":190
2010-09-06 22:15:53 +08:00
* # experimental exception made for __getbuffer__ and __releasebuffer__
* # - - the details of this may change .
* def __getbuffer__ ( ndarray self , Py_buffer * info , int flags ) : # < < < < < < < < < < < < < <
* # This implementation of getbuffer is geared towards Cython
* # requirements , and does not yet fullfill the PEP .
*/
2011-09-03 19:28:32 +08:00
static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__ ( PyObject * __pyx_v_self , Py_buffer * __pyx_v_info , int __pyx_v_flags ) ; /*proto*/
static CYTHON_UNUSED int __pyx_pf_5numpy_7ndarray___getbuffer__ ( PyObject * __pyx_v_self , Py_buffer * __pyx_v_info , int __pyx_v_flags ) {
2010-09-06 22:15:53 +08:00
int __pyx_v_copy_shape ;
int __pyx_v_i ;
int __pyx_v_ndim ;
int __pyx_v_endian_detector ;
int __pyx_v_little_endian ;
int __pyx_v_t ;
char * __pyx_v_f ;
PyArray_Descr * __pyx_v_descr = 0 ;
int __pyx_v_offset ;
int __pyx_v_hasfields ;
int __pyx_r ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-06 22:15:53 +08:00
int __pyx_t_1 ;
2010-09-15 04:02:44 +08:00
int __pyx_t_2 ;
int __pyx_t_3 ;
PyObject * __pyx_t_4 = NULL ;
2011-09-03 19:28:32 +08:00
int __pyx_t_5 ;
2010-09-06 22:15:53 +08:00
int __pyx_t_6 ;
2010-09-15 04:02:44 +08:00
int __pyx_t_7 ;
2011-09-03 19:28:32 +08:00
PyObject * __pyx_t_8 = NULL ;
2010-09-15 04:02:44 +08:00
char * __pyx_t_9 ;
2011-09-03 19:28:32 +08:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannySetupContext ( " __getbuffer__ " ) ;
2011-09-03 19:28:32 +08:00
if ( __pyx_v_info ! = NULL ) {
__pyx_v_info - > obj = Py_None ; __Pyx_INCREF ( Py_None ) ;
__Pyx_GIVEREF ( __pyx_v_info - > obj ) ;
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":196
2010-09-06 22:15:53 +08:00
* # of flags
2011-09-03 19:28:32 +08:00
*
* if info = = NULL : return # < < < < < < < < < < < < < <
*
* cdef int copy_shape , i , ndim
*/
__pyx_t_1 = ( __pyx_v_info = = NULL ) ;
if ( __pyx_t_1 ) {
__pyx_r = 0 ;
goto __pyx_L0 ;
goto __pyx_L5 ;
}
__pyx_L5 : ;
/* "numpy.pxd":199
*
2010-09-06 22:15:53 +08:00
* cdef int copy_shape , i , ndim
* cdef int endian_detector = 1 # < < < < < < < < < < < < < <
* cdef bint little_endian = ( ( < char * > & endian_detector ) [ 0 ] ! = 0 )
*
*/
__pyx_v_endian_detector = 1 ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":200
2010-09-06 22:15:53 +08:00
* cdef int copy_shape , i , ndim
* cdef int endian_detector = 1
* cdef bint little_endian = ( ( < char * > & endian_detector ) [ 0 ] ! = 0 ) # < < < < < < < < < < < < < <
*
* ndim = PyArray_NDIM ( self )
*/
__pyx_v_little_endian = ( ( ( ( char * ) ( & __pyx_v_endian_detector ) ) [ 0 ] ) ! = 0 ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":202
2010-09-06 22:15:53 +08:00
* cdef bint little_endian = ( ( < char * > & endian_detector ) [ 0 ] ! = 0 )
*
* ndim = PyArray_NDIM ( self ) # < < < < < < < < < < < < < <
*
* if sizeof ( npy_intp ) ! = sizeof ( Py_ssize_t ) :
*/
__pyx_v_ndim = PyArray_NDIM ( ( ( PyArrayObject * ) __pyx_v_self ) ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":204
2010-09-06 22:15:53 +08:00
* ndim = PyArray_NDIM ( self )
*
* if sizeof ( npy_intp ) ! = sizeof ( Py_ssize_t ) : # < < < < < < < < < < < < < <
* copy_shape = 1
* else :
*/
__pyx_t_1 = ( ( sizeof ( npy_intp ) ) ! = ( sizeof ( Py_ssize_t ) ) ) ;
if ( __pyx_t_1 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":205
2010-09-06 22:15:53 +08:00
*
* if sizeof ( npy_intp ) ! = sizeof ( Py_ssize_t ) :
* copy_shape = 1 # < < < < < < < < < < < < < <
* else :
* copy_shape = 0
*/
__pyx_v_copy_shape = 1 ;
2011-09-03 19:28:32 +08:00
goto __pyx_L6 ;
2010-09-06 22:15:53 +08:00
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":207
2010-09-06 22:15:53 +08:00
* copy_shape = 1
* else :
* copy_shape = 0 # < < < < < < < < < < < < < <
*
* if ( ( flags & pybuf . PyBUF_C_CONTIGUOUS = = pybuf . PyBUF_C_CONTIGUOUS )
*/
__pyx_v_copy_shape = 0 ;
}
2011-09-03 19:28:32 +08:00
__pyx_L6 : ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":209
2010-09-06 22:15:53 +08:00
* copy_shape = 0
*
* if ( ( flags & pybuf . PyBUF_C_CONTIGUOUS = = pybuf . PyBUF_C_CONTIGUOUS ) # < < < < < < < < < < < < < <
* and not PyArray_CHKFLAGS ( self , NPY_C_CONTIGUOUS ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not C contiguous " )
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( ( __pyx_v_flags & PyBUF_C_CONTIGUOUS ) = = PyBUF_C_CONTIGUOUS ) ;
if ( __pyx_t_1 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":210
2010-09-06 22:15:53 +08:00
*
* if ( ( flags & pybuf . PyBUF_C_CONTIGUOUS = = pybuf . PyBUF_C_CONTIGUOUS )
* and not PyArray_CHKFLAGS ( self , NPY_C_CONTIGUOUS ) ) : # < < < < < < < < < < < < < <
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not C contiguous " )
2010-09-06 22:15:53 +08:00
*
*/
2010-09-15 04:02:44 +08:00
__pyx_t_2 = ( ! PyArray_CHKFLAGS ( ( ( PyArrayObject * ) __pyx_v_self ) , NPY_C_CONTIGUOUS ) ) ;
__pyx_t_3 = __pyx_t_2 ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_3 = __pyx_t_1 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
if ( __pyx_t_3 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":211
2010-09-06 22:15:53 +08:00
* if ( ( flags & pybuf . PyBUF_C_CONTIGUOUS = = pybuf . PyBUF_C_CONTIGUOUS )
* and not PyArray_CHKFLAGS ( self , NPY_C_CONTIGUOUS ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not C contiguous " ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
*
* if ( ( flags & pybuf . PyBUF_F_CONTIGUOUS = = pybuf . PyBUF_F_CONTIGUOUS )
*/
2011-09-03 19:28:32 +08:00
__pyx_t_4 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_k_tuple_6 ) , NULL ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 211 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_4 , 0 , 0 , 0 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 211 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
goto __pyx_L7 ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
__pyx_L7 : ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":213
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not C contiguous " )
2010-09-06 22:15:53 +08:00
*
* if ( ( flags & pybuf . PyBUF_F_CONTIGUOUS = = pybuf . PyBUF_F_CONTIGUOUS ) # < < < < < < < < < < < < < <
* and not PyArray_CHKFLAGS ( self , NPY_F_CONTIGUOUS ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not Fortran contiguous " )
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
__pyx_t_3 = ( ( __pyx_v_flags & PyBUF_F_CONTIGUOUS ) = = PyBUF_F_CONTIGUOUS ) ;
if ( __pyx_t_3 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":214
2010-09-06 22:15:53 +08:00
*
* if ( ( flags & pybuf . PyBUF_F_CONTIGUOUS = = pybuf . PyBUF_F_CONTIGUOUS )
* and not PyArray_CHKFLAGS ( self , NPY_F_CONTIGUOUS ) ) : # < < < < < < < < < < < < < <
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not Fortran contiguous " )
2010-09-06 22:15:53 +08:00
*
*/
__pyx_t_1 = ( ! PyArray_CHKFLAGS ( ( ( PyArrayObject * ) __pyx_v_self ) , NPY_F_CONTIGUOUS ) ) ;
2010-09-15 04:02:44 +08:00
__pyx_t_2 = __pyx_t_1 ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_2 = __pyx_t_3 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
if ( __pyx_t_2 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":215
2010-09-06 22:15:53 +08:00
* if ( ( flags & pybuf . PyBUF_F_CONTIGUOUS = = pybuf . PyBUF_F_CONTIGUOUS )
* and not PyArray_CHKFLAGS ( self , NPY_F_CONTIGUOUS ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not Fortran contiguous " ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
*
* info . buf = PyArray_DATA ( self )
*/
2011-09-03 19:28:32 +08:00
__pyx_t_4 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_k_tuple_8 ) , NULL ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 215 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_4 , 0 , 0 , 0 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 215 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
goto __pyx_L8 ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
__pyx_L8 : ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":217
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " ndarray is not Fortran contiguous " )
2010-09-06 22:15:53 +08:00
*
* info . buf = PyArray_DATA ( self ) # < < < < < < < < < < < < < <
* info . ndim = ndim
* if copy_shape :
*/
__pyx_v_info - > buf = PyArray_DATA ( ( ( PyArrayObject * ) __pyx_v_self ) ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":218
2010-09-06 22:15:53 +08:00
*
* info . buf = PyArray_DATA ( self )
* info . ndim = ndim # < < < < < < < < < < < < < <
* if copy_shape :
2011-09-03 19:28:32 +08:00
* # Allocate new buffer for strides and shape info .
2010-09-06 22:15:53 +08:00
*/
__pyx_v_info - > ndim = __pyx_v_ndim ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":219
2010-09-06 22:15:53 +08:00
* info . buf = PyArray_DATA ( self )
* info . ndim = ndim
* if copy_shape : # < < < < < < < < < < < < < <
2011-09-03 19:28:32 +08:00
* # Allocate new buffer for strides and shape info .
* # This is allocated as one block , strides first .
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
if ( __pyx_v_copy_shape ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":222
* # Allocate new buffer for strides and shape info .
* # This is allocated as one block , strides first .
* info . strides = < Py_ssize_t * > stdlib . malloc ( sizeof ( Py_ssize_t ) * < size_t > ndim * 2 ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
* info . shape = info . strides + ndim
* for i in range ( ndim ) :
*/
2011-09-03 19:28:32 +08:00
__pyx_v_info - > strides = ( ( Py_ssize_t * ) malloc ( ( ( ( sizeof ( Py_ssize_t ) ) * ( ( size_t ) __pyx_v_ndim ) ) * 2 ) ) ) ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":223
* # This is allocated as one block , strides first .
* info . strides = < Py_ssize_t * > stdlib . malloc ( sizeof ( Py_ssize_t ) * < size_t > ndim * 2 )
2010-09-06 22:15:53 +08:00
* info . shape = info . strides + ndim # < < < < < < < < < < < < < <
* for i in range ( ndim ) :
* info . strides [ i ] = PyArray_STRIDES ( self ) [ i ]
*/
__pyx_v_info - > shape = ( __pyx_v_info - > strides + __pyx_v_ndim ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":224
* info . strides = < Py_ssize_t * > stdlib . malloc ( sizeof ( Py_ssize_t ) * < size_t > ndim * 2 )
2010-09-06 22:15:53 +08:00
* info . shape = info . strides + ndim
* for i in range ( ndim ) : # < < < < < < < < < < < < < <
* info . strides [ i ] = PyArray_STRIDES ( self ) [ i ]
* info . shape [ i ] = PyArray_DIMS ( self ) [ i ]
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = __pyx_v_ndim ;
for ( __pyx_t_6 = 0 ; __pyx_t_6 < __pyx_t_5 ; __pyx_t_6 + = 1 ) {
__pyx_v_i = __pyx_t_6 ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":225
2010-09-06 22:15:53 +08:00
* info . shape = info . strides + ndim
* for i in range ( ndim ) :
* info . strides [ i ] = PyArray_STRIDES ( self ) [ i ] # < < < < < < < < < < < < < <
* info . shape [ i ] = PyArray_DIMS ( self ) [ i ]
* else :
*/
( __pyx_v_info - > strides [ __pyx_v_i ] ) = ( PyArray_STRIDES ( ( ( PyArrayObject * ) __pyx_v_self ) ) [ __pyx_v_i ] ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":226
2010-09-06 22:15:53 +08:00
* for i in range ( ndim ) :
* info . strides [ i ] = PyArray_STRIDES ( self ) [ i ]
* info . shape [ i ] = PyArray_DIMS ( self ) [ i ] # < < < < < < < < < < < < < <
* else :
* info . strides = < Py_ssize_t * > PyArray_STRIDES ( self )
*/
( __pyx_v_info - > shape [ __pyx_v_i ] ) = ( PyArray_DIMS ( ( ( PyArrayObject * ) __pyx_v_self ) ) [ __pyx_v_i ] ) ;
}
2011-09-03 19:28:32 +08:00
goto __pyx_L9 ;
2010-09-06 22:15:53 +08:00
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":228
2010-09-06 22:15:53 +08:00
* info . shape [ i ] = PyArray_DIMS ( self ) [ i ]
* else :
* info . strides = < Py_ssize_t * > PyArray_STRIDES ( self ) # < < < < < < < < < < < < < <
* info . shape = < Py_ssize_t * > PyArray_DIMS ( self )
* info . suboffsets = NULL
*/
__pyx_v_info - > strides = ( ( Py_ssize_t * ) PyArray_STRIDES ( ( ( PyArrayObject * ) __pyx_v_self ) ) ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":229
2010-09-06 22:15:53 +08:00
* else :
* info . strides = < Py_ssize_t * > PyArray_STRIDES ( self )
* info . shape = < Py_ssize_t * > PyArray_DIMS ( self ) # < < < < < < < < < < < < < <
* info . suboffsets = NULL
* info . itemsize = PyArray_ITEMSIZE ( self )
*/
__pyx_v_info - > shape = ( ( Py_ssize_t * ) PyArray_DIMS ( ( ( PyArrayObject * ) __pyx_v_self ) ) ) ;
}
2011-09-03 19:28:32 +08:00
__pyx_L9 : ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":230
2010-09-06 22:15:53 +08:00
* info . strides = < Py_ssize_t * > PyArray_STRIDES ( self )
* info . shape = < Py_ssize_t * > PyArray_DIMS ( self )
* info . suboffsets = NULL # < < < < < < < < < < < < < <
* info . itemsize = PyArray_ITEMSIZE ( self )
* info . readonly = not PyArray_ISWRITEABLE ( self )
*/
__pyx_v_info - > suboffsets = NULL ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":231
2010-09-06 22:15:53 +08:00
* info . shape = < Py_ssize_t * > PyArray_DIMS ( self )
* info . suboffsets = NULL
* info . itemsize = PyArray_ITEMSIZE ( self ) # < < < < < < < < < < < < < <
* info . readonly = not PyArray_ISWRITEABLE ( self )
*
*/
__pyx_v_info - > itemsize = PyArray_ITEMSIZE ( ( ( PyArrayObject * ) __pyx_v_self ) ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":232
2010-09-06 22:15:53 +08:00
* info . suboffsets = NULL
* info . itemsize = PyArray_ITEMSIZE ( self )
* info . readonly = not PyArray_ISWRITEABLE ( self ) # < < < < < < < < < < < < < <
*
* cdef int t
*/
__pyx_v_info - > readonly = ( ! PyArray_ISWRITEABLE ( ( ( PyArrayObject * ) __pyx_v_self ) ) ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":235
2010-09-06 22:15:53 +08:00
*
* cdef int t
* cdef char * f = NULL # < < < < < < < < < < < < < <
* cdef dtype descr = self . descr
* cdef list stack
*/
__pyx_v_f = NULL ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":236
2010-09-06 22:15:53 +08:00
* cdef int t
* cdef char * f = NULL
* cdef dtype descr = self . descr # < < < < < < < < < < < < < <
* cdef list stack
* cdef int offset
*/
__Pyx_INCREF ( ( ( PyObject * ) ( ( PyArrayObject * ) __pyx_v_self ) - > descr ) ) ;
__pyx_v_descr = ( ( PyArrayObject * ) __pyx_v_self ) - > descr ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":240
2010-09-06 22:15:53 +08:00
* cdef int offset
*
* cdef bint hasfields = PyDataType_HASFIELDS ( descr ) # < < < < < < < < < < < < < <
*
* if not hasfields and not copy_shape :
*/
__pyx_v_hasfields = PyDataType_HASFIELDS ( __pyx_v_descr ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":242
2010-09-06 22:15:53 +08:00
* cdef bint hasfields = PyDataType_HASFIELDS ( descr )
*
* if not hasfields and not copy_shape : # < < < < < < < < < < < < < <
* # do not call releasebuffer
* info . obj = None
*/
2010-09-15 04:02:44 +08:00
__pyx_t_2 = ( ! __pyx_v_hasfields ) ;
if ( __pyx_t_2 ) {
__pyx_t_3 = ( ! __pyx_v_copy_shape ) ;
__pyx_t_1 = __pyx_t_3 ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_1 = __pyx_t_2 ;
2010-09-06 22:15:53 +08:00
}
if ( __pyx_t_1 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":244
2010-09-06 22:15:53 +08:00
* if not hasfields and not copy_shape :
* # do not call releasebuffer
* info . obj = None # < < < < < < < < < < < < < <
* else :
* # need to call releasebuffer
*/
__Pyx_INCREF ( Py_None ) ;
__Pyx_GIVEREF ( Py_None ) ;
__Pyx_GOTREF ( __pyx_v_info - > obj ) ;
__Pyx_DECREF ( __pyx_v_info - > obj ) ;
__pyx_v_info - > obj = Py_None ;
2011-09-03 19:28:32 +08:00
goto __pyx_L12 ;
2010-09-06 22:15:53 +08:00
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":247
2010-09-06 22:15:53 +08:00
* else :
* # need to call releasebuffer
* info . obj = self # < < < < < < < < < < < < < <
*
* if not hasfields :
*/
__Pyx_INCREF ( __pyx_v_self ) ;
__Pyx_GIVEREF ( __pyx_v_self ) ;
__Pyx_GOTREF ( __pyx_v_info - > obj ) ;
__Pyx_DECREF ( __pyx_v_info - > obj ) ;
__pyx_v_info - > obj = __pyx_v_self ;
}
2011-09-03 19:28:32 +08:00
__pyx_L12 : ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":249
2010-09-06 22:15:53 +08:00
* info . obj = self
*
* if not hasfields : # < < < < < < < < < < < < < <
* t = descr . type_num
* if ( ( descr . byteorder = = ' > ' and little_endian ) or
*/
__pyx_t_1 = ( ! __pyx_v_hasfields ) ;
if ( __pyx_t_1 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":250
2010-09-06 22:15:53 +08:00
*
* if not hasfields :
* t = descr . type_num # < < < < < < < < < < < < < <
* if ( ( descr . byteorder = = ' > ' and little_endian ) or
* ( descr . byteorder = = ' < ' and not little_endian ) ) :
*/
__pyx_v_t = __pyx_v_descr - > type_num ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":251
2010-09-06 22:15:53 +08:00
* if not hasfields :
* t = descr . type_num
* if ( ( descr . byteorder = = ' > ' and little_endian ) or # < < < < < < < < < < < < < <
* ( descr . byteorder = = ' < ' and not little_endian ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " )
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_descr - > byteorder = = ' > ' ) ;
if ( __pyx_t_1 ) {
__pyx_t_2 = __pyx_v_little_endian ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_2 = __pyx_t_1 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
if ( ! __pyx_t_2 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":252
2010-09-06 22:15:53 +08:00
* t = descr . type_num
* if ( ( descr . byteorder = = ' > ' and little_endian ) or
* ( descr . byteorder = = ' < ' and not little_endian ) ) : # < < < < < < < < < < < < < <
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " )
2010-09-06 22:15:53 +08:00
* if t = = NPY_BYTE : f = " b "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_descr - > byteorder = = ' < ' ) ;
if ( __pyx_t_1 ) {
__pyx_t_3 = ( ! __pyx_v_little_endian ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_7 = __pyx_t_3 ;
2010-09-06 22:15:53 +08:00
} else {
2011-09-03 19:28:32 +08:00
__pyx_t_7 = __pyx_t_1 ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
__pyx_t_1 = __pyx_t_7 ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_1 = __pyx_t_2 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
if ( __pyx_t_1 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":253
2010-09-06 22:15:53 +08:00
* if ( ( descr . byteorder = = ' > ' and little_endian ) or
* ( descr . byteorder = = ' < ' and not little_endian ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
* if t = = NPY_BYTE : f = " b "
* elif t = = NPY_UBYTE : f = " B "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_4 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_k_tuple_10 ) , NULL ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 253 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_4 , 0 , 0 , 0 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 253 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
goto __pyx_L14 ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
__pyx_L14 : ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":254
2010-09-06 22:15:53 +08:00
* ( descr . byteorder = = ' < ' and not little_endian ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " )
2010-09-06 22:15:53 +08:00
* if t = = NPY_BYTE : f = " b " # < < < < < < < < < < < < < <
* elif t = = NPY_UBYTE : f = " B "
* elif t = = NPY_SHORT : f = " h "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_BYTE ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__b ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":255
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " )
2010-09-06 22:15:53 +08:00
* if t = = NPY_BYTE : f = " b "
* elif t = = NPY_UBYTE : f = " B " # < < < < < < < < < < < < < <
* elif t = = NPY_SHORT : f = " h "
* elif t = = NPY_USHORT : f = " H "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_UBYTE ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__B ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":256
2010-09-06 22:15:53 +08:00
* if t = = NPY_BYTE : f = " b "
* elif t = = NPY_UBYTE : f = " B "
* elif t = = NPY_SHORT : f = " h " # < < < < < < < < < < < < < <
* elif t = = NPY_USHORT : f = " H "
* elif t = = NPY_INT : f = " i "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_SHORT ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__h ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":257
2010-09-06 22:15:53 +08:00
* elif t = = NPY_UBYTE : f = " B "
* elif t = = NPY_SHORT : f = " h "
* elif t = = NPY_USHORT : f = " H " # < < < < < < < < < < < < < <
* elif t = = NPY_INT : f = " i "
* elif t = = NPY_UINT : f = " I "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_USHORT ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__H ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":258
2010-09-06 22:15:53 +08:00
* elif t = = NPY_SHORT : f = " h "
* elif t = = NPY_USHORT : f = " H "
* elif t = = NPY_INT : f = " i " # < < < < < < < < < < < < < <
* elif t = = NPY_UINT : f = " I "
* elif t = = NPY_LONG : f = " l "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_INT ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__i ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":259
2010-09-06 22:15:53 +08:00
* elif t = = NPY_USHORT : f = " H "
* elif t = = NPY_INT : f = " i "
* elif t = = NPY_UINT : f = " I " # < < < < < < < < < < < < < <
* elif t = = NPY_LONG : f = " l "
* elif t = = NPY_ULONG : f = " L "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_UINT ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__I ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":260
2010-09-06 22:15:53 +08:00
* elif t = = NPY_INT : f = " i "
* elif t = = NPY_UINT : f = " I "
* elif t = = NPY_LONG : f = " l " # < < < < < < < < < < < < < <
* elif t = = NPY_ULONG : f = " L "
* elif t = = NPY_LONGLONG : f = " q "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_LONG ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__l ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":261
2010-09-06 22:15:53 +08:00
* elif t = = NPY_UINT : f = " I "
* elif t = = NPY_LONG : f = " l "
* elif t = = NPY_ULONG : f = " L " # < < < < < < < < < < < < < <
* elif t = = NPY_LONGLONG : f = " q "
* elif t = = NPY_ULONGLONG : f = " Q "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_ULONG ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__L ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":262
2010-09-06 22:15:53 +08:00
* elif t = = NPY_LONG : f = " l "
* elif t = = NPY_ULONG : f = " L "
* elif t = = NPY_LONGLONG : f = " q " # < < < < < < < < < < < < < <
* elif t = = NPY_ULONGLONG : f = " Q "
* elif t = = NPY_FLOAT : f = " f "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_LONGLONG ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__q ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":263
2010-09-06 22:15:53 +08:00
* elif t = = NPY_ULONG : f = " L "
* elif t = = NPY_LONGLONG : f = " q "
* elif t = = NPY_ULONGLONG : f = " Q " # < < < < < < < < < < < < < <
* elif t = = NPY_FLOAT : f = " f "
* elif t = = NPY_DOUBLE : f = " d "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_ULONGLONG ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__Q ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":264
2010-09-06 22:15:53 +08:00
* elif t = = NPY_LONGLONG : f = " q "
* elif t = = NPY_ULONGLONG : f = " Q "
* elif t = = NPY_FLOAT : f = " f " # < < < < < < < < < < < < < <
* elif t = = NPY_DOUBLE : f = " d "
* elif t = = NPY_LONGDOUBLE : f = " g "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_FLOAT ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__f ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":265
2010-09-06 22:15:53 +08:00
* elif t = = NPY_ULONGLONG : f = " Q "
* elif t = = NPY_FLOAT : f = " f "
* elif t = = NPY_DOUBLE : f = " d " # < < < < < < < < < < < < < <
* elif t = = NPY_LONGDOUBLE : f = " g "
* elif t = = NPY_CFLOAT : f = " Zf "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_DOUBLE ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__d ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":266
2010-09-06 22:15:53 +08:00
* elif t = = NPY_FLOAT : f = " f "
* elif t = = NPY_DOUBLE : f = " d "
* elif t = = NPY_LONGDOUBLE : f = " g " # < < < < < < < < < < < < < <
* elif t = = NPY_CFLOAT : f = " Zf "
* elif t = = NPY_CDOUBLE : f = " Zd "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_LONGDOUBLE ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__g ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":267
2010-09-06 22:15:53 +08:00
* elif t = = NPY_DOUBLE : f = " d "
* elif t = = NPY_LONGDOUBLE : f = " g "
* elif t = = NPY_CFLOAT : f = " Zf " # < < < < < < < < < < < < < <
* elif t = = NPY_CDOUBLE : f = " Zd "
* elif t = = NPY_CLONGDOUBLE : f = " Zg "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_CFLOAT ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__Zf ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":268
2010-09-06 22:15:53 +08:00
* elif t = = NPY_LONGDOUBLE : f = " g "
* elif t = = NPY_CFLOAT : f = " Zf "
* elif t = = NPY_CDOUBLE : f = " Zd " # < < < < < < < < < < < < < <
* elif t = = NPY_CLONGDOUBLE : f = " Zg "
* elif t = = NPY_OBJECT : f = " O "
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_CDOUBLE ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__Zd ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":269
2010-09-06 22:15:53 +08:00
* elif t = = NPY_CFLOAT : f = " Zf "
* elif t = = NPY_CDOUBLE : f = " Zd "
* elif t = = NPY_CLONGDOUBLE : f = " Zg " # < < < < < < < < < < < < < <
* elif t = = NPY_OBJECT : f = " O "
* else :
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_CLONGDOUBLE ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__Zg ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":270
2010-09-06 22:15:53 +08:00
* elif t = = NPY_CDOUBLE : f = " Zd "
* elif t = = NPY_CLONGDOUBLE : f = " Zg "
* elif t = = NPY_OBJECT : f = " O " # < < < < < < < < < < < < < <
* else :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " unknown dtype code in numpy.pxd (%d) " % t )
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
__pyx_t_1 = ( __pyx_v_t = = NPY_OBJECT ) ;
if ( __pyx_t_1 ) {
__pyx_v_f = __pyx_k__O ;
2011-09-03 19:28:32 +08:00
goto __pyx_L15 ;
2010-09-15 04:02:44 +08:00
}
/*else*/ {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":272
2010-09-06 22:15:53 +08:00
* elif t = = NPY_OBJECT : f = " O "
* else :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " unknown dtype code in numpy.pxd (%d) " % t ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
* info . format = f
* return
*/
2011-09-03 19:28:32 +08:00
__pyx_t_4 = PyInt_FromLong ( __pyx_v_t ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 272 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_8 = PyNumber_Remainder ( ( ( PyObject * ) __pyx_kp_u_11 ) , __pyx_t_4 ) ; if ( unlikely ( ! __pyx_t_8 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 272 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_8 ) ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_4 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 272 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_4 ) ) ;
PyTuple_SET_ITEM ( __pyx_t_4 , 0 , ( ( PyObject * ) __pyx_t_8 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_t_8 ) ) ;
__pyx_t_8 = 0 ;
__pyx_t_8 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_t_4 ) , NULL ) ; if ( unlikely ( ! __pyx_t_8 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 272 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_8 ) ;
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_4 ) ) ; __pyx_t_4 = 0 ;
__Pyx_Raise ( __pyx_t_8 , 0 , 0 , 0 ) ;
__Pyx_DECREF ( __pyx_t_8 ) ; __pyx_t_8 = 0 ;
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 272 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
__pyx_L15 : ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":273
2010-09-06 22:15:53 +08:00
* else :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " unknown dtype code in numpy.pxd (%d) " % t )
2010-09-06 22:15:53 +08:00
* info . format = f # < < < < < < < < < < < < < <
* return
* else :
*/
__pyx_v_info - > format = __pyx_v_f ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":274
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " unknown dtype code in numpy.pxd (%d) " % t )
2010-09-06 22:15:53 +08:00
* info . format = f
* return # < < < < < < < < < < < < < <
* else :
* info . format = < char * > stdlib . malloc ( _buffer_format_string_len )
*/
__pyx_r = 0 ;
goto __pyx_L0 ;
2011-09-03 19:28:32 +08:00
goto __pyx_L13 ;
2010-09-06 22:15:53 +08:00
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":276
2010-09-06 22:15:53 +08:00
* return
* else :
* info . format = < char * > stdlib . malloc ( _buffer_format_string_len ) # < < < < < < < < < < < < < <
* info . format [ 0 ] = ' ^ ' # Native data types , manual alignment
* offset = 0
*/
__pyx_v_info - > format = ( ( char * ) malloc ( 255 ) ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":277
2010-09-06 22:15:53 +08:00
* else :
* info . format = < char * > stdlib . malloc ( _buffer_format_string_len )
* info . format [ 0 ] = ' ^ ' # Native data types , manual alignment # < < < < < < < < < < < < < <
* offset = 0
* f = _util_dtypestring ( descr , info . format + 1 ,
*/
( __pyx_v_info - > format [ 0 ] ) = ' ^ ' ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":278
2010-09-06 22:15:53 +08:00
* info . format = < char * > stdlib . malloc ( _buffer_format_string_len )
* info . format [ 0 ] = ' ^ ' # Native data types , manual alignment
* offset = 0 # < < < < < < < < < < < < < <
* f = _util_dtypestring ( descr , info . format + 1 ,
* info . format + _buffer_format_string_len ,
*/
__pyx_v_offset = 0 ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":281
2010-09-06 22:15:53 +08:00
* f = _util_dtypestring ( descr , info . format + 1 ,
* info . format + _buffer_format_string_len ,
* & offset ) # < < < < < < < < < < < < < <
* f [ 0 ] = 0 # Terminate format string
*
*/
2011-09-03 19:28:32 +08:00
__pyx_t_9 = __pyx_f_5numpy__util_dtypestring ( __pyx_v_descr , ( __pyx_v_info - > format + 1 ) , ( __pyx_v_info - > format + 255 ) , ( & __pyx_v_offset ) ) ; if ( unlikely ( __pyx_t_9 = = NULL ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 279 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__pyx_v_f = __pyx_t_9 ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":282
2010-09-06 22:15:53 +08:00
* info . format + _buffer_format_string_len ,
* & offset )
* f [ 0 ] = 0 # Terminate format string # < < < < < < < < < < < < < <
*
* def __releasebuffer__ ( ndarray self , Py_buffer * info ) :
*/
( __pyx_v_f [ 0 ] ) = 0 ;
}
2011-09-03 19:28:32 +08:00
__pyx_L13 : ;
2010-09-06 22:15:53 +08:00
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2010-09-15 04:02:44 +08:00
__Pyx_XDECREF ( __pyx_t_4 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_XDECREF ( __pyx_t_8 ) ;
__Pyx_AddTraceback ( " numpy.ndarray.__getbuffer__ " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
__pyx_r = - 1 ;
2011-09-03 19:28:32 +08:00
if ( __pyx_v_info ! = NULL & & __pyx_v_info - > obj ! = NULL ) {
__Pyx_GOTREF ( __pyx_v_info - > obj ) ;
__Pyx_DECREF ( __pyx_v_info - > obj ) ; __pyx_v_info - > obj = NULL ;
}
2010-09-15 04:02:44 +08:00
goto __pyx_L2 ;
__pyx_L0 : ;
2011-09-03 19:28:32 +08:00
if ( __pyx_v_info ! = NULL & & __pyx_v_info - > obj = = Py_None ) {
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( Py_None ) ;
__Pyx_DECREF ( Py_None ) ; __pyx_v_info - > obj = NULL ;
}
__pyx_L2 : ;
__Pyx_XDECREF ( ( PyObject * ) __pyx_v_descr ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":284
2010-09-15 04:02:44 +08:00
* f [ 0 ] = 0 # Terminate format string
*
* def __releasebuffer__ ( ndarray self , Py_buffer * info ) : # < < < < < < < < < < < < < <
* if PyArray_HASFIELDS ( self ) :
* stdlib . free ( info . format )
*/
2011-09-03 19:28:32 +08:00
static CYTHON_UNUSED void __pyx_pf_5numpy_7ndarray_1__releasebuffer__ ( PyObject * __pyx_v_self , Py_buffer * __pyx_v_info ) ; /*proto*/
static CYTHON_UNUSED void __pyx_pf_5numpy_7ndarray_1__releasebuffer__ ( PyObject * __pyx_v_self , Py_buffer * __pyx_v_info ) {
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
int __pyx_t_1 ;
__Pyx_RefNannySetupContext ( " __releasebuffer__ " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":285
2010-09-15 04:02:44 +08:00
*
* def __releasebuffer__ ( ndarray self , Py_buffer * info ) :
* if PyArray_HASFIELDS ( self ) : # < < < < < < < < < < < < < <
* stdlib . free ( info . format )
* if sizeof ( npy_intp ) ! = sizeof ( Py_ssize_t ) :
*/
__pyx_t_1 = PyArray_HASFIELDS ( ( ( PyArrayObject * ) __pyx_v_self ) ) ;
if ( __pyx_t_1 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":286
2010-09-15 04:02:44 +08:00
* def __releasebuffer__ ( ndarray self , Py_buffer * info ) :
* if PyArray_HASFIELDS ( self ) :
* stdlib . free ( info . format ) # < < < < < < < < < < < < < <
* if sizeof ( npy_intp ) ! = sizeof ( Py_ssize_t ) :
* stdlib . free ( info . strides )
*/
free ( __pyx_v_info - > format ) ;
goto __pyx_L5 ;
}
__pyx_L5 : ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":287
2010-09-15 04:02:44 +08:00
* if PyArray_HASFIELDS ( self ) :
* stdlib . free ( info . format )
* if sizeof ( npy_intp ) ! = sizeof ( Py_ssize_t ) : # < < < < < < < < < < < < < <
* stdlib . free ( info . strides )
* # info . shape was stored after info . strides in the same block
*/
__pyx_t_1 = ( ( sizeof ( npy_intp ) ) ! = ( sizeof ( Py_ssize_t ) ) ) ;
if ( __pyx_t_1 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":288
2010-09-15 04:02:44 +08:00
* stdlib . free ( info . format )
* if sizeof ( npy_intp ) ! = sizeof ( Py_ssize_t ) :
* stdlib . free ( info . strides ) # < < < < < < < < < < < < < <
* # info . shape was stored after info . strides in the same block
*
*/
free ( __pyx_v_info - > strides ) ;
goto __pyx_L6 ;
}
__pyx_L6 : ;
__Pyx_RefNannyFinishContext ( ) ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":764
2010-09-15 04:02:44 +08:00
* ctypedef npy_cdouble complex_t
*
* cdef inline object PyArray_MultiIterNew1 ( a ) : # < < < < < < < < < < < < < <
* return PyArray_MultiIterNew ( 1 , < void * > a )
*
*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew1 ( PyObject * __pyx_v_a ) {
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
PyObject * __pyx_t_1 = NULL ;
2011-09-03 19:28:32 +08:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannySetupContext ( " PyArray_MultiIterNew1 " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":765
2010-09-15 04:02:44 +08:00
*
* cdef inline object PyArray_MultiIterNew1 ( a ) :
* return PyArray_MultiIterNew ( 1 , < void * > a ) # < < < < < < < < < < < < < <
*
* cdef inline object PyArray_MultiIterNew2 ( a , b ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyArray_MultiIterNew ( 1 , ( ( void * ) __pyx_v_a ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 765 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " numpy.PyArray_MultiIterNew1 " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":767
2010-09-15 04:02:44 +08:00
* return PyArray_MultiIterNew ( 1 , < void * > a )
*
* cdef inline object PyArray_MultiIterNew2 ( a , b ) : # < < < < < < < < < < < < < <
* return PyArray_MultiIterNew ( 2 , < void * > a , < void * > b )
*
*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew2 ( PyObject * __pyx_v_a , PyObject * __pyx_v_b ) {
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
PyObject * __pyx_t_1 = NULL ;
2011-09-03 19:28:32 +08:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannySetupContext ( " PyArray_MultiIterNew2 " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":768
2010-09-15 04:02:44 +08:00
*
* cdef inline object PyArray_MultiIterNew2 ( a , b ) :
* return PyArray_MultiIterNew ( 2 , < void * > a , < void * > b ) # < < < < < < < < < < < < < <
*
* cdef inline object PyArray_MultiIterNew3 ( a , b , c ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyArray_MultiIterNew ( 2 , ( ( void * ) __pyx_v_a ) , ( ( void * ) __pyx_v_b ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 768 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " numpy.PyArray_MultiIterNew2 " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":770
2010-09-15 04:02:44 +08:00
* return PyArray_MultiIterNew ( 2 , < void * > a , < void * > b )
*
* cdef inline object PyArray_MultiIterNew3 ( a , b , c ) : # < < < < < < < < < < < < < <
* return PyArray_MultiIterNew ( 3 , < void * > a , < void * > b , < void * > c )
*
*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew3 ( PyObject * __pyx_v_a , PyObject * __pyx_v_b , PyObject * __pyx_v_c ) {
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
PyObject * __pyx_t_1 = NULL ;
2011-09-03 19:28:32 +08:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannySetupContext ( " PyArray_MultiIterNew3 " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":771
2010-09-15 04:02:44 +08:00
*
* cdef inline object PyArray_MultiIterNew3 ( a , b , c ) :
* return PyArray_MultiIterNew ( 3 , < void * > a , < void * > b , < void * > c ) # < < < < < < < < < < < < < <
*
* cdef inline object PyArray_MultiIterNew4 ( a , b , c , d ) :
*/
__Pyx_XDECREF ( __pyx_r ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyArray_MultiIterNew ( 3 , ( ( void * ) __pyx_v_a ) , ( ( void * ) __pyx_v_b ) , ( ( void * ) __pyx_v_c ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 771 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " numpy.PyArray_MultiIterNew3 " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
__pyx_r = 0 ;
2010-09-06 22:15:53 +08:00
__pyx_L0 : ;
2010-09-15 04:02:44 +08:00
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
2010-09-06 22:15:53 +08:00
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":773
2010-09-15 04:02:44 +08:00
* return PyArray_MultiIterNew ( 3 , < void * > a , < void * > b , < void * > c )
*
* cdef inline object PyArray_MultiIterNew4 ( a , b , c , d ) : # < < < < < < < < < < < < < <
* return PyArray_MultiIterNew ( 4 , < void * > a , < void * > b , < void * > c , < void * > d )
2010-09-06 22:15:53 +08:00
*
*/
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew4 ( PyObject * __pyx_v_a , PyObject * __pyx_v_b , PyObject * __pyx_v_c , PyObject * __pyx_v_d ) {
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
PyObject * __pyx_t_1 = NULL ;
2011-09-03 19:28:32 +08:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannySetupContext ( " PyArray_MultiIterNew4 " ) ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":774
2010-09-06 22:15:53 +08:00
*
2010-09-15 04:02:44 +08:00
* cdef inline object PyArray_MultiIterNew4 ( a , b , c , d ) :
* return PyArray_MultiIterNew ( 4 , < void * > a , < void * > b , < void * > c , < void * > d ) # < < < < < < < < < < < < < <
*
* cdef inline object PyArray_MultiIterNew5 ( a , b , c , d , e ) :
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
__Pyx_XDECREF ( __pyx_r ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyArray_MultiIterNew ( 4 , ( ( void * ) __pyx_v_a ) , ( ( void * ) __pyx_v_b ) , ( ( void * ) __pyx_v_c ) , ( ( void * ) __pyx_v_d ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 774 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " numpy.PyArray_MultiIterNew4 " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":776
2010-09-15 04:02:44 +08:00
* return PyArray_MultiIterNew ( 4 , < void * > a , < void * > b , < void * > c , < void * > d )
*
* cdef inline object PyArray_MultiIterNew5 ( a , b , c , d , e ) : # < < < < < < < < < < < < < <
* return PyArray_MultiIterNew ( 5 , < void * > a , < void * > b , < void * > c , < void * > d , < void * > e )
*
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE PyObject * __pyx_f_5numpy_PyArray_MultiIterNew5 ( PyObject * __pyx_v_a , PyObject * __pyx_v_b , PyObject * __pyx_v_c , PyObject * __pyx_v_d , PyObject * __pyx_v_e ) {
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
PyObject * __pyx_t_1 = NULL ;
2011-09-03 19:28:32 +08:00
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannySetupContext ( " PyArray_MultiIterNew5 " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":777
2010-09-15 04:02:44 +08:00
*
* cdef inline object PyArray_MultiIterNew5 ( a , b , c , d , e ) :
* return PyArray_MultiIterNew ( 5 , < void * > a , < void * > b , < void * > c , < void * > d , < void * > e ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
*
2010-09-15 04:02:44 +08:00
* cdef inline char * _util_dtypestring ( dtype descr , char * f , char * end , int * offset ) except NULL :
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
__Pyx_XDECREF ( __pyx_r ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_1 = PyArray_MultiIterNew ( 5 , ( ( void * ) __pyx_v_a ) , ( ( void * ) __pyx_v_b ) , ( ( void * ) __pyx_v_c ) , ( ( void * ) __pyx_v_d ) , ( ( void * ) __pyx_v_e ) ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 777 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
__pyx_r = __pyx_t_1 ;
__pyx_t_1 = 0 ;
goto __pyx_L0 ;
2010-09-06 22:15:53 +08:00
2010-09-15 04:02:44 +08:00
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
goto __pyx_L0 ;
__pyx_L1_error : ;
__Pyx_XDECREF ( __pyx_t_1 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " numpy.PyArray_MultiIterNew5 " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
__pyx_r = 0 ;
__pyx_L0 : ;
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":779
2010-09-15 04:02:44 +08:00
* return PyArray_MultiIterNew ( 5 , < void * > a , < void * > b , < void * > c , < void * > d , < void * > e )
2010-09-06 22:15:53 +08:00
*
* cdef inline char * _util_dtypestring ( dtype descr , char * f , char * end , int * offset ) except NULL : # < < < < < < < < < < < < < <
* # Recursive utility function used in __getbuffer__ to get format
* # string . The new location in the format string is returned .
*/
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE char * __pyx_f_5numpy__util_dtypestring ( PyArray_Descr * __pyx_v_descr , char * __pyx_v_f , char * __pyx_v_end , int * __pyx_v_offset ) {
2011-09-03 19:28:32 +08:00
PyArray_Descr * __pyx_v_child = 0 ;
2010-09-06 22:15:53 +08:00
int __pyx_v_endian_detector ;
int __pyx_v_little_endian ;
2011-09-03 19:28:32 +08:00
PyObject * __pyx_v_fields = 0 ;
PyObject * __pyx_v_childname = NULL ;
PyObject * __pyx_v_new_offset = NULL ;
PyObject * __pyx_v_t = NULL ;
2010-09-06 22:15:53 +08:00
char * __pyx_r ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
PyObject * __pyx_t_1 = NULL ;
Py_ssize_t __pyx_t_2 ;
2010-09-06 22:15:53 +08:00
PyObject * __pyx_t_3 = NULL ;
PyObject * __pyx_t_4 = NULL ;
PyObject * __pyx_t_5 = NULL ;
int __pyx_t_6 ;
int __pyx_t_7 ;
int __pyx_t_8 ;
2010-09-15 04:02:44 +08:00
int __pyx_t_9 ;
2011-09-03 19:28:32 +08:00
long __pyx_t_10 ;
char * __pyx_t_11 ;
int __pyx_lineno = 0 ;
const char * __pyx_filename = NULL ;
int __pyx_clineno = 0 ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannySetupContext ( " _util_dtypestring " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":786
2010-09-06 22:15:53 +08:00
* cdef int delta_offset
* cdef tuple i
* cdef int endian_detector = 1 # < < < < < < < < < < < < < <
* cdef bint little_endian = ( ( < char * > & endian_detector ) [ 0 ] ! = 0 )
2010-09-15 04:02:44 +08:00
* cdef tuple fields
2010-09-06 22:15:53 +08:00
*/
__pyx_v_endian_detector = 1 ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":787
2010-09-06 22:15:53 +08:00
* cdef tuple i
* cdef int endian_detector = 1
* cdef bint little_endian = ( ( < char * > & endian_detector ) [ 0 ] ! = 0 ) # < < < < < < < < < < < < < <
2010-09-15 04:02:44 +08:00
* cdef tuple fields
2010-09-06 22:15:53 +08:00
*
*/
__pyx_v_little_endian = ( ( ( ( char * ) ( & __pyx_v_endian_detector ) ) [ 0 ] ) ! = 0 ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":790
2010-09-15 04:02:44 +08:00
* cdef tuple fields
2010-09-06 22:15:53 +08:00
*
2010-09-15 04:02:44 +08:00
* for childname in descr . names : # < < < < < < < < < < < < < <
* fields = descr . fields [ childname ]
* child , new_offset = fields
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
if ( unlikely ( ( ( PyObject * ) __pyx_v_descr - > names ) = = Py_None ) ) {
PyErr_SetString ( PyExc_TypeError , " 'NoneType' object is not iterable " ) ; { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 790 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
__pyx_t_1 = ( ( PyObject * ) __pyx_v_descr - > names ) ; __Pyx_INCREF ( __pyx_t_1 ) ; __pyx_t_2 = 0 ;
2010-09-06 22:15:53 +08:00
for ( ; ; ) {
2011-09-03 19:28:32 +08:00
if ( __pyx_t_2 > = PyTuple_GET_SIZE ( __pyx_t_1 ) ) break ;
__pyx_t_3 = PyTuple_GET_ITEM ( __pyx_t_1 , __pyx_t_2 ) ; __Pyx_INCREF ( __pyx_t_3 ) ; __pyx_t_2 + + ;
__Pyx_XDECREF ( __pyx_v_childname ) ;
2010-09-15 04:02:44 +08:00
__pyx_v_childname = __pyx_t_3 ;
2010-09-06 22:15:53 +08:00
__pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":791
2010-09-06 22:15:53 +08:00
*
2010-09-15 04:02:44 +08:00
* for childname in descr . names :
* fields = descr . fields [ childname ] # < < < < < < < < < < < < < <
* child , new_offset = fields
2010-09-06 22:15:53 +08:00
*
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_GetItem ( __pyx_v_descr - > fields , __pyx_v_childname ) ; if ( ! __pyx_t_3 ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 791 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
if ( ! ( likely ( PyTuple_CheckExact ( __pyx_t_3 ) ) | | ( ( __pyx_t_3 ) = = Py_None ) | | ( PyErr_Format ( PyExc_TypeError , " Expected tuple, got %.200s " , Py_TYPE ( __pyx_t_3 ) - > tp_name ) , 0 ) ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 791 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_XDECREF ( ( ( PyObject * ) __pyx_v_fields ) ) ;
__pyx_v_fields = ( ( PyObject * ) __pyx_t_3 ) ;
2010-09-15 04:02:44 +08:00
__pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":792
2010-09-15 04:02:44 +08:00
* for childname in descr . names :
* fields = descr . fields [ childname ]
* child , new_offset = fields # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
*
* if ( end - f ) - ( new_offset - offset [ 0 ] ) < 15 :
*/
2011-09-03 19:28:32 +08:00
if ( likely ( PyTuple_CheckExact ( ( ( PyObject * ) __pyx_v_fields ) ) ) ) {
PyObject * sequence = ( ( PyObject * ) __pyx_v_fields ) ;
if ( unlikely ( PyTuple_GET_SIZE ( sequence ) ! = 2 ) ) {
if ( PyTuple_GET_SIZE ( sequence ) > 2 ) __Pyx_RaiseTooManyValuesError ( 2 ) ;
else __Pyx_RaiseNeedMoreValuesError ( PyTuple_GET_SIZE ( sequence ) ) ;
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 792 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
}
__pyx_t_3 = PyTuple_GET_ITEM ( sequence , 0 ) ;
__pyx_t_4 = PyTuple_GET_ITEM ( sequence , 1 ) ;
__Pyx_INCREF ( __pyx_t_3 ) ;
__Pyx_INCREF ( __pyx_t_4 ) ;
2010-09-15 04:02:44 +08:00
} else {
__Pyx_UnpackTupleError ( ( ( PyObject * ) __pyx_v_fields ) , 2 ) ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 792 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
}
2011-09-03 19:28:32 +08:00
if ( ! ( likely ( ( ( __pyx_t_3 ) = = Py_None ) | | likely ( __Pyx_TypeTest ( __pyx_t_3 , __pyx_ptype_5numpy_dtype ) ) ) ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 792 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_XDECREF ( ( ( PyObject * ) __pyx_v_child ) ) ;
__pyx_v_child = ( ( PyArray_Descr * ) __pyx_t_3 ) ;
__pyx_t_3 = 0 ;
__Pyx_XDECREF ( __pyx_v_new_offset ) ;
__pyx_v_new_offset = __pyx_t_4 ;
__pyx_t_4 = 0 ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":794
2010-09-15 04:02:44 +08:00
* child , new_offset = fields
2010-09-06 22:15:53 +08:00
*
* if ( end - f ) - ( new_offset - offset [ 0 ] ) < 15 : # < < < < < < < < < < < < < <
2010-09-15 04:02:44 +08:00
* raise RuntimeError ( u " Format string allocated too short, see comment in numpy.pxd " )
2010-09-06 22:15:53 +08:00
*
*/
2011-09-03 19:28:32 +08:00
__pyx_t_4 = PyInt_FromLong ( ( __pyx_v_end - __pyx_v_f ) ) ; if ( unlikely ( ! __pyx_t_4 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 794 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_4 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( ( __pyx_v_offset [ 0 ] ) ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 794 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyNumber_Subtract ( __pyx_v_new_offset , __pyx_t_3 ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 794 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyNumber_Subtract ( __pyx_t_4 , __pyx_t_5 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 794 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
__Pyx_DECREF ( __pyx_t_4 ) ; __pyx_t_4 = 0 ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_t_3 , __pyx_int_15 , Py_LT ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 794 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 794 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
if ( __pyx_t_6 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":795
2010-09-06 22:15:53 +08:00
*
* if ( end - f ) - ( new_offset - offset [ 0 ] ) < 15 :
2010-09-15 04:02:44 +08:00
* raise RuntimeError ( u " Format string allocated too short, see comment in numpy.pxd " ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
*
* if ( ( child . byteorder = = ' > ' and little_endian ) or
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_Call ( __pyx_builtin_RuntimeError , ( ( PyObject * ) __pyx_k_tuple_13 ) , NULL ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 795 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_5 , 0 , 0 , 0 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 795 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
goto __pyx_L5 ;
}
__pyx_L5 : ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":797
2010-09-15 04:02:44 +08:00
* raise RuntimeError ( u " Format string allocated too short, see comment in numpy.pxd " )
2010-09-06 22:15:53 +08:00
*
* if ( ( child . byteorder = = ' > ' and little_endian ) or # < < < < < < < < < < < < < <
* ( child . byteorder = = ' < ' and not little_endian ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " )
2010-09-06 22:15:53 +08:00
*/
2010-09-15 04:02:44 +08:00
__pyx_t_6 = ( __pyx_v_child - > byteorder = = ' > ' ) ;
if ( __pyx_t_6 ) {
__pyx_t_7 = __pyx_v_little_endian ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_7 = __pyx_t_6 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
if ( ! __pyx_t_7 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":798
2010-09-06 22:15:53 +08:00
*
* if ( ( child . byteorder = = ' > ' and little_endian ) or
* ( child . byteorder = = ' < ' and not little_endian ) ) : # < < < < < < < < < < < < < <
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " )
2010-09-06 22:15:53 +08:00
* # One could encode it in the format string and have Cython
*/
2010-09-15 04:02:44 +08:00
__pyx_t_6 = ( __pyx_v_child - > byteorder = = ' < ' ) ;
if ( __pyx_t_6 ) {
__pyx_t_8 = ( ! __pyx_v_little_endian ) ;
__pyx_t_9 = __pyx_t_8 ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_9 = __pyx_t_6 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
__pyx_t_6 = __pyx_t_9 ;
2010-09-06 22:15:53 +08:00
} else {
2010-09-15 04:02:44 +08:00
__pyx_t_6 = __pyx_t_7 ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":799
2010-09-06 22:15:53 +08:00
* if ( ( child . byteorder = = ' > ' and little_endian ) or
* ( child . byteorder = = ' < ' and not little_endian ) ) :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " Non-native byte order not supported " ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
* # One could encode it in the format string and have Cython
* # complain instead , BUT : < and > in format strings also imply
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_k_tuple_14 ) , NULL ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 799 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_5 , 0 , 0 , 0 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 799 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
goto __pyx_L6 ;
}
__pyx_L6 : ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":809
2010-09-06 22:15:53 +08:00
*
* # Output padding bytes
* while offset [ 0 ] < new_offset : # < < < < < < < < < < < < < <
* f [ 0 ] = 120 # " x " ; pad byte
* f + = 1
*/
while ( 1 ) {
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( ( __pyx_v_offset [ 0 ] ) ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 809 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_t_5 , __pyx_v_new_offset , Py_LT ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 809 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 809 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
if ( ! __pyx_t_6 ) break ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":810
2010-09-06 22:15:53 +08:00
* # Output padding bytes
* while offset [ 0 ] < new_offset :
* f [ 0 ] = 120 # " x " ; pad byte # < < < < < < < < < < < < < <
* f + = 1
* offset [ 0 ] + = 1
*/
( __pyx_v_f [ 0 ] ) = 120 ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":811
2010-09-06 22:15:53 +08:00
* while offset [ 0 ] < new_offset :
* f [ 0 ] = 120 # " x " ; pad byte
* f + = 1 # < < < < < < < < < < < < < <
* offset [ 0 ] + = 1
*
*/
2011-09-03 19:28:32 +08:00
__pyx_v_f = ( __pyx_v_f + 1 ) ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":812
2010-09-06 22:15:53 +08:00
* f [ 0 ] = 120 # " x " ; pad byte
* f + = 1
* offset [ 0 ] + = 1 # < < < < < < < < < < < < < <
*
* offset [ 0 ] + = child . itemsize
*/
2011-09-03 19:28:32 +08:00
__pyx_t_10 = 0 ;
( __pyx_v_offset [ __pyx_t_10 ] ) = ( ( __pyx_v_offset [ __pyx_t_10 ] ) + 1 ) ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":814
2010-09-06 22:15:53 +08:00
* offset [ 0 ] + = 1
*
* offset [ 0 ] + = child . itemsize # < < < < < < < < < < < < < <
*
* if not PyDataType_HASFIELDS ( child ) :
*/
2011-09-03 19:28:32 +08:00
__pyx_t_10 = 0 ;
( __pyx_v_offset [ __pyx_t_10 ] ) = ( ( __pyx_v_offset [ __pyx_t_10 ] ) + __pyx_v_child - > elsize ) ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":816
2010-09-06 22:15:53 +08:00
* offset [ 0 ] + = child . itemsize
*
* if not PyDataType_HASFIELDS ( child ) : # < < < < < < < < < < < < < <
* t = child . type_num
* if end - f < 5 :
*/
2010-09-15 04:02:44 +08:00
__pyx_t_6 = ( ! PyDataType_HASFIELDS ( __pyx_v_child ) ) ;
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":817
2010-09-06 22:15:53 +08:00
*
* if not PyDataType_HASFIELDS ( child ) :
* t = child . type_num # < < < < < < < < < < < < < <
* if end - f < 5 :
2010-09-15 04:02:44 +08:00
* raise RuntimeError ( u " Format string allocated too short. " )
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( __pyx_v_child - > type_num ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 817 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_XDECREF ( __pyx_v_t ) ;
2010-09-15 04:02:44 +08:00
__pyx_v_t = __pyx_t_3 ;
__pyx_t_3 = 0 ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":818
2010-09-06 22:15:53 +08:00
* if not PyDataType_HASFIELDS ( child ) :
* t = child . type_num
* if end - f < 5 : # < < < < < < < < < < < < < <
2010-09-15 04:02:44 +08:00
* raise RuntimeError ( u " Format string allocated too short. " )
2010-09-06 22:15:53 +08:00
*
*/
2010-09-15 04:02:44 +08:00
__pyx_t_6 = ( ( __pyx_v_end - __pyx_v_f ) < 5 ) ;
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":819
2010-09-06 22:15:53 +08:00
* t = child . type_num
* if end - f < 5 :
2010-09-15 04:02:44 +08:00
* raise RuntimeError ( u " Format string allocated too short. " ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
*
* # Until ticket # 99 is fixed , use integers to avoid warnings
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_Call ( __pyx_builtin_RuntimeError , ( ( PyObject * ) __pyx_k_tuple_16 ) , NULL ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 819 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_Raise ( __pyx_t_3 , 0 , 0 , 0 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 819 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
goto __pyx_L10 ;
}
__pyx_L10 : ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":822
2010-09-06 22:15:53 +08:00
*
* # Until ticket # 99 is fixed , use integers to avoid warnings
* if t = = NPY_BYTE : f [ 0 ] = 98 # " b " # < < < < < < < < < < < < < <
* elif t = = NPY_UBYTE : f [ 0 ] = 66 # " B "
* elif t = = NPY_SHORT : f [ 0 ] = 104 # " h "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_BYTE ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 822 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 822 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 822 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 98 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":823
2010-09-06 22:15:53 +08:00
* # Until ticket # 99 is fixed , use integers to avoid warnings
* if t = = NPY_BYTE : f [ 0 ] = 98 # " b "
* elif t = = NPY_UBYTE : f [ 0 ] = 66 # " B " # < < < < < < < < < < < < < <
* elif t = = NPY_SHORT : f [ 0 ] = 104 # " h "
* elif t = = NPY_USHORT : f [ 0 ] = 72 # " H "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_UBYTE ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 823 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 823 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 823 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 66 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":824
2010-09-06 22:15:53 +08:00
* if t = = NPY_BYTE : f [ 0 ] = 98 # " b "
* elif t = = NPY_UBYTE : f [ 0 ] = 66 # " B "
* elif t = = NPY_SHORT : f [ 0 ] = 104 # " h " # < < < < < < < < < < < < < <
* elif t = = NPY_USHORT : f [ 0 ] = 72 # " H "
* elif t = = NPY_INT : f [ 0 ] = 105 # " i "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_SHORT ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 824 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 824 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 824 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 104 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":825
2010-09-06 22:15:53 +08:00
* elif t = = NPY_UBYTE : f [ 0 ] = 66 # " B "
* elif t = = NPY_SHORT : f [ 0 ] = 104 # " h "
* elif t = = NPY_USHORT : f [ 0 ] = 72 # " H " # < < < < < < < < < < < < < <
* elif t = = NPY_INT : f [ 0 ] = 105 # " i "
* elif t = = NPY_UINT : f [ 0 ] = 73 # " I "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_USHORT ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 825 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 825 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 825 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 72 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":826
2010-09-06 22:15:53 +08:00
* elif t = = NPY_SHORT : f [ 0 ] = 104 # " h "
* elif t = = NPY_USHORT : f [ 0 ] = 72 # " H "
* elif t = = NPY_INT : f [ 0 ] = 105 # " i " # < < < < < < < < < < < < < <
* elif t = = NPY_UINT : f [ 0 ] = 73 # " I "
* elif t = = NPY_LONG : f [ 0 ] = 108 # " l "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_INT ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 826 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 826 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 826 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 105 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":827
2010-09-06 22:15:53 +08:00
* elif t = = NPY_USHORT : f [ 0 ] = 72 # " H "
* elif t = = NPY_INT : f [ 0 ] = 105 # " i "
* elif t = = NPY_UINT : f [ 0 ] = 73 # " I " # < < < < < < < < < < < < < <
* elif t = = NPY_LONG : f [ 0 ] = 108 # " l "
* elif t = = NPY_ULONG : f [ 0 ] = 76 # " L "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_UINT ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 827 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 827 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 827 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 73 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":828
2010-09-06 22:15:53 +08:00
* elif t = = NPY_INT : f [ 0 ] = 105 # " i "
* elif t = = NPY_UINT : f [ 0 ] = 73 # " I "
* elif t = = NPY_LONG : f [ 0 ] = 108 # " l " # < < < < < < < < < < < < < <
* elif t = = NPY_ULONG : f [ 0 ] = 76 # " L "
* elif t = = NPY_LONGLONG : f [ 0 ] = 113 # " q "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_LONG ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 828 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 828 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 828 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 108 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":829
2010-09-06 22:15:53 +08:00
* elif t = = NPY_UINT : f [ 0 ] = 73 # " I "
* elif t = = NPY_LONG : f [ 0 ] = 108 # " l "
* elif t = = NPY_ULONG : f [ 0 ] = 76 # " L " # < < < < < < < < < < < < < <
* elif t = = NPY_LONGLONG : f [ 0 ] = 113 # " q "
* elif t = = NPY_ULONGLONG : f [ 0 ] = 81 # " Q "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_ULONG ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 829 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 829 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 829 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 76 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":830
2010-09-06 22:15:53 +08:00
* elif t = = NPY_LONG : f [ 0 ] = 108 # " l "
* elif t = = NPY_ULONG : f [ 0 ] = 76 # " L "
* elif t = = NPY_LONGLONG : f [ 0 ] = 113 # " q " # < < < < < < < < < < < < < <
* elif t = = NPY_ULONGLONG : f [ 0 ] = 81 # " Q "
* elif t = = NPY_FLOAT : f [ 0 ] = 102 # " f "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_LONGLONG ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 830 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 830 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 830 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 113 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":831
2010-09-06 22:15:53 +08:00
* elif t = = NPY_ULONG : f [ 0 ] = 76 # " L "
* elif t = = NPY_LONGLONG : f [ 0 ] = 113 # " q "
* elif t = = NPY_ULONGLONG : f [ 0 ] = 81 # " Q " # < < < < < < < < < < < < < <
* elif t = = NPY_FLOAT : f [ 0 ] = 102 # " f "
* elif t = = NPY_DOUBLE : f [ 0 ] = 100 # " d "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_ULONGLONG ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 831 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 831 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 831 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 81 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":832
2010-09-06 22:15:53 +08:00
* elif t = = NPY_LONGLONG : f [ 0 ] = 113 # " q "
* elif t = = NPY_ULONGLONG : f [ 0 ] = 81 # " Q "
* elif t = = NPY_FLOAT : f [ 0 ] = 102 # " f " # < < < < < < < < < < < < < <
* elif t = = NPY_DOUBLE : f [ 0 ] = 100 # " d "
* elif t = = NPY_LONGDOUBLE : f [ 0 ] = 103 # " g "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_FLOAT ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 832 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 832 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 832 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 102 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":833
2010-09-06 22:15:53 +08:00
* elif t = = NPY_ULONGLONG : f [ 0 ] = 81 # " Q "
* elif t = = NPY_FLOAT : f [ 0 ] = 102 # " f "
* elif t = = NPY_DOUBLE : f [ 0 ] = 100 # " d " # < < < < < < < < < < < < < <
* elif t = = NPY_LONGDOUBLE : f [ 0 ] = 103 # " g "
* elif t = = NPY_CFLOAT : f [ 0 ] = 90 ; f [ 1 ] = 102 ; f + = 1 # Zf
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_DOUBLE ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 833 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 833 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 833 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 100 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":834
2010-09-06 22:15:53 +08:00
* elif t = = NPY_FLOAT : f [ 0 ] = 102 # " f "
* elif t = = NPY_DOUBLE : f [ 0 ] = 100 # " d "
* elif t = = NPY_LONGDOUBLE : f [ 0 ] = 103 # " g " # < < < < < < < < < < < < < <
* elif t = = NPY_CFLOAT : f [ 0 ] = 90 ; f [ 1 ] = 102 ; f + = 1 # Zf
* elif t = = NPY_CDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 100 ; f + = 1 # Zd
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_LONGDOUBLE ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 834 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 834 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 834 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 103 ;
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":835
2010-09-06 22:15:53 +08:00
* elif t = = NPY_DOUBLE : f [ 0 ] = 100 # " d "
* elif t = = NPY_LONGDOUBLE : f [ 0 ] = 103 # " g "
* elif t = = NPY_CFLOAT : f [ 0 ] = 90 ; f [ 1 ] = 102 ; f + = 1 # Zf # < < < < < < < < < < < < < <
* elif t = = NPY_CDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 100 ; f + = 1 # Zd
* elif t = = NPY_CLONGDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 103 ; f + = 1 # Zg
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_CFLOAT ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 835 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 835 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 835 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 90 ;
( __pyx_v_f [ 1 ] ) = 102 ;
2011-09-03 19:28:32 +08:00
__pyx_v_f = ( __pyx_v_f + 1 ) ;
2010-09-06 22:15:53 +08:00
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":836
2010-09-06 22:15:53 +08:00
* elif t = = NPY_LONGDOUBLE : f [ 0 ] = 103 # " g "
* elif t = = NPY_CFLOAT : f [ 0 ] = 90 ; f [ 1 ] = 102 ; f + = 1 # Zf
* elif t = = NPY_CDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 100 ; f + = 1 # Zd # < < < < < < < < < < < < < <
* elif t = = NPY_CLONGDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 103 ; f + = 1 # Zg
* elif t = = NPY_OBJECT : f [ 0 ] = 79 # " O "
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_CDOUBLE ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 836 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 836 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 836 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 90 ;
( __pyx_v_f [ 1 ] ) = 100 ;
2011-09-03 19:28:32 +08:00
__pyx_v_f = ( __pyx_v_f + 1 ) ;
2010-09-06 22:15:53 +08:00
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":837
2010-09-06 22:15:53 +08:00
* elif t = = NPY_CFLOAT : f [ 0 ] = 90 ; f [ 1 ] = 102 ; f + = 1 # Zf
* elif t = = NPY_CDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 100 ; f + = 1 # Zd
* elif t = = NPY_CLONGDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 103 ; f + = 1 # Zg # < < < < < < < < < < < < < <
* elif t = = NPY_OBJECT : f [ 0 ] = 79 # " O "
* else :
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyInt_FromLong ( NPY_CLONGDOUBLE ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 837 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_5 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 837 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_3 ) ;
2010-09-06 22:15:53 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_3 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 837 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 90 ;
( __pyx_v_f [ 1 ] ) = 103 ;
2011-09-03 19:28:32 +08:00
__pyx_v_f = ( __pyx_v_f + 1 ) ;
2010-09-06 22:15:53 +08:00
goto __pyx_L11 ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":838
2010-09-06 22:15:53 +08:00
* elif t = = NPY_CDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 100 ; f + = 1 # Zd
* elif t = = NPY_CLONGDOUBLE : f [ 0 ] = 90 ; f [ 1 ] = 103 ; f + = 1 # Zg
* elif t = = NPY_OBJECT : f [ 0 ] = 79 # " O " # < < < < < < < < < < < < < <
* else :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " unknown dtype code in numpy.pxd (%d) " % t )
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
__pyx_t_3 = PyInt_FromLong ( NPY_OBJECT ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 838 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_3 ) ;
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyObject_RichCompare ( __pyx_v_t , __pyx_t_3 , Py_EQ ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 838 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_5 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_3 ) ; __pyx_t_3 = 0 ;
2011-09-03 19:28:32 +08:00
__pyx_t_6 = __Pyx_PyObject_IsTrue ( __pyx_t_5 ) ; if ( unlikely ( __pyx_t_6 < 0 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 838 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2010-09-15 04:02:44 +08:00
if ( __pyx_t_6 ) {
2010-09-06 22:15:53 +08:00
( __pyx_v_f [ 0 ] ) = 79 ;
goto __pyx_L11 ;
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":840
2010-09-06 22:15:53 +08:00
* elif t = = NPY_OBJECT : f [ 0 ] = 79 # " O "
* else :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " unknown dtype code in numpy.pxd (%d) " % t ) # < < < < < < < < < < < < < <
2010-09-06 22:15:53 +08:00
* f + = 1
* else :
*/
2011-09-03 19:28:32 +08:00
__pyx_t_5 = PyNumber_Remainder ( ( ( PyObject * ) __pyx_kp_u_11 ) , __pyx_v_t ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 840 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_5 ) ) ;
__pyx_t_3 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_t_3 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 840 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_3 ) ) ;
PyTuple_SET_ITEM ( __pyx_t_3 , 0 , ( ( PyObject * ) __pyx_t_5 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_t_5 ) ) ;
__pyx_t_5 = 0 ;
__pyx_t_5 = PyObject_Call ( __pyx_builtin_ValueError , ( ( PyObject * ) __pyx_t_3 ) , NULL ) ; if ( unlikely ( ! __pyx_t_5 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 840 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_3 ) ) ; __pyx_t_3 = 0 ;
__Pyx_Raise ( __pyx_t_5 , 0 , 0 , 0 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_DECREF ( __pyx_t_5 ) ; __pyx_t_5 = 0 ;
2011-09-03 19:28:32 +08:00
{ __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 840 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
}
__pyx_L11 : ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":841
2010-09-06 22:15:53 +08:00
* else :
2010-09-15 04:02:44 +08:00
* raise ValueError ( u " unknown dtype code in numpy.pxd (%d) " % t )
2010-09-06 22:15:53 +08:00
* f + = 1 # < < < < < < < < < < < < < <
* else :
* # Cython ignores struct boundary information ( " T{...} " ) ,
*/
2011-09-03 19:28:32 +08:00
__pyx_v_f = ( __pyx_v_f + 1 ) ;
2010-09-06 22:15:53 +08:00
goto __pyx_L9 ;
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":845
2010-09-06 22:15:53 +08:00
* # Cython ignores struct boundary information ( " T{...} " ) ,
* # so don ' t output it
* f = _util_dtypestring ( child , f , end , offset ) # < < < < < < < < < < < < < <
* return f
*
*/
2011-09-03 19:28:32 +08:00
__pyx_t_11 = __pyx_f_5numpy__util_dtypestring ( __pyx_v_child , __pyx_v_f , __pyx_v_end , __pyx_v_offset ) ; if ( unlikely ( __pyx_t_11 = = NULL ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 845 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_v_f = __pyx_t_11 ;
2010-09-06 22:15:53 +08:00
}
__pyx_L9 : ;
}
2011-09-03 19:28:32 +08:00
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":846
2010-09-06 22:15:53 +08:00
* # so don ' t output it
* f = _util_dtypestring ( child , f , end , offset )
* return f # < < < < < < < < < < < < < <
*
2010-09-15 04:02:44 +08:00
*
2010-09-06 22:15:53 +08:00
*/
__pyx_r = __pyx_v_f ;
goto __pyx_L0 ;
2010-09-15 04:02:44 +08:00
__pyx_r = 0 ;
goto __pyx_L0 ;
__pyx_L1_error : ;
2011-09-03 19:28:32 +08:00
__Pyx_XDECREF ( __pyx_t_1 ) ;
2010-09-15 04:02:44 +08:00
__Pyx_XDECREF ( __pyx_t_3 ) ;
__Pyx_XDECREF ( __pyx_t_4 ) ;
__Pyx_XDECREF ( __pyx_t_5 ) ;
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " numpy._util_dtypestring " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
__pyx_r = NULL ;
__pyx_L0 : ;
2011-09-03 19:28:32 +08:00
__Pyx_XDECREF ( ( PyObject * ) __pyx_v_child ) ;
__Pyx_XDECREF ( __pyx_v_fields ) ;
__Pyx_XDECREF ( __pyx_v_childname ) ;
__Pyx_XDECREF ( __pyx_v_new_offset ) ;
__Pyx_XDECREF ( __pyx_v_t ) ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannyFinishContext ( ) ;
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":961
2010-09-15 04:02:44 +08:00
*
*
* cdef inline void set_array_base ( ndarray arr , object base ) : # < < < < < < < < < < < < < <
* cdef PyObject * baseptr
* if base is None :
*/
static CYTHON_INLINE void __pyx_f_5numpy_set_array_base ( PyArrayObject * __pyx_v_arr , PyObject * __pyx_v_base ) {
PyObject * __pyx_v_baseptr ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
int __pyx_t_1 ;
__Pyx_RefNannySetupContext ( " set_array_base " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":963
2010-09-15 04:02:44 +08:00
* cdef inline void set_array_base ( ndarray arr , object base ) :
* cdef PyObject * baseptr
* if base is None : # < < < < < < < < < < < < < <
* baseptr = NULL
* else :
*/
__pyx_t_1 = ( __pyx_v_base = = Py_None ) ;
if ( __pyx_t_1 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":964
2010-09-15 04:02:44 +08:00
* cdef PyObject * baseptr
* if base is None :
* baseptr = NULL # < < < < < < < < < < < < < <
* else :
* Py_INCREF ( base ) # important to do this before decref below !
*/
__pyx_v_baseptr = NULL ;
goto __pyx_L3 ;
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":966
2010-09-15 04:02:44 +08:00
* baseptr = NULL
* else :
* Py_INCREF ( base ) # important to do this before decref below ! # < < < < < < < < < < < < < <
* baseptr = < PyObject * > base
* Py_XDECREF ( arr . base )
*/
Py_INCREF ( __pyx_v_base ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":967
2010-09-15 04:02:44 +08:00
* else :
* Py_INCREF ( base ) # important to do this before decref below !
* baseptr = < PyObject * > base # < < < < < < < < < < < < < <
* Py_XDECREF ( arr . base )
* arr . base = baseptr
*/
__pyx_v_baseptr = ( ( PyObject * ) __pyx_v_base ) ;
}
__pyx_L3 : ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":968
2010-09-15 04:02:44 +08:00
* Py_INCREF ( base ) # important to do this before decref below !
* baseptr = < PyObject * > base
* Py_XDECREF ( arr . base ) # < < < < < < < < < < < < < <
* arr . base = baseptr
*
*/
Py_XDECREF ( __pyx_v_arr - > base ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":969
2010-09-15 04:02:44 +08:00
* baseptr = < PyObject * > base
* Py_XDECREF ( arr . base )
* arr . base = baseptr # < < < < < < < < < < < < < <
*
* cdef inline object get_array_base ( ndarray arr ) :
*/
__pyx_v_arr - > base = __pyx_v_baseptr ;
__Pyx_RefNannyFinishContext ( ) ;
}
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":971
2010-09-15 04:02:44 +08:00
* arr . base = baseptr
*
* cdef inline object get_array_base ( ndarray arr ) : # < < < < < < < < < < < < < <
* if arr . base is NULL :
* return None
*/
static CYTHON_INLINE PyObject * __pyx_f_5numpy_get_array_base ( PyArrayObject * __pyx_v_arr ) {
PyObject * __pyx_r = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
int __pyx_t_1 ;
__Pyx_RefNannySetupContext ( " get_array_base " ) ;
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":972
2010-09-15 04:02:44 +08:00
*
* cdef inline object get_array_base ( ndarray arr ) :
* if arr . base is NULL : # < < < < < < < < < < < < < <
* return None
* else :
*/
__pyx_t_1 = ( __pyx_v_arr - > base = = NULL ) ;
if ( __pyx_t_1 ) {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":973
2010-09-15 04:02:44 +08:00
* cdef inline object get_array_base ( ndarray arr ) :
* if arr . base is NULL :
* return None # < < < < < < < < < < < < < <
* else :
* return < object > arr . base
*/
__Pyx_XDECREF ( __pyx_r ) ;
__Pyx_INCREF ( Py_None ) ;
__pyx_r = Py_None ;
goto __pyx_L0 ;
goto __pyx_L3 ;
}
/*else*/ {
2011-09-03 19:28:32 +08:00
/* "numpy.pxd":975
2010-09-15 04:02:44 +08:00
* return None
* else :
* return < object > arr . base # < < < < < < < < < < < < < <
*/
__Pyx_XDECREF ( __pyx_r ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_v_arr - > base ) ) ;
__pyx_r = ( ( PyObject * ) __pyx_v_arr - > base ) ;
goto __pyx_L0 ;
}
__pyx_L3 : ;
__pyx_r = Py_None ; __Pyx_INCREF ( Py_None ) ;
2010-09-06 22:15:53 +08:00
__pyx_L0 : ;
2010-09-15 04:02:44 +08:00
__Pyx_XGIVEREF ( __pyx_r ) ;
__Pyx_RefNannyFinishContext ( ) ;
2010-09-06 22:15:53 +08:00
return __pyx_r ;
}
2011-09-03 19:28:32 +08:00
static PyMethodDef __pyx_methods [ ] = {
2010-09-06 22:15:53 +08:00
{ 0 , 0 , 0 , 0 }
} ;
# if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
PyModuleDef_HEAD_INIT ,
__Pyx_NAMESTR ( " arrayfuncs " ) ,
2011-09-03 19:28:32 +08:00
__Pyx_DOCSTR ( __pyx_k_17 ) , /* m_doc */
2010-09-06 22:15:53 +08:00
- 1 , /* m_size */
__pyx_methods /* m_methods */ ,
NULL , /* m_reload */
NULL , /* m_traverse */
NULL , /* m_clear */
NULL /* m_free */
} ;
# endif
static __Pyx_StringTabEntry __pyx_string_tab [ ] = {
2010-11-05 21:54:09 +08:00
{ & __pyx_kp_s_1 , __pyx_k_1 , sizeof ( __pyx_k_1 ) , 0 , 0 , 1 , 0 } ,
2010-11-22 21:56:37 +08:00
{ & __pyx_kp_u_11 , __pyx_k_11 , sizeof ( __pyx_k_11 ) , 0 , 1 , 0 , 0 } ,
2011-09-03 19:28:32 +08:00
{ & __pyx_kp_u_12 , __pyx_k_12 , sizeof ( __pyx_k_12 ) , 0 , 1 , 0 , 0 } ,
{ & __pyx_kp_u_15 , __pyx_k_15 , sizeof ( __pyx_k_15 ) , 0 , 1 , 0 , 0 } ,
{ & __pyx_n_s_18 , __pyx_k_18 , sizeof ( __pyx_k_18 ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_kp_s_3 , __pyx_k_3 , sizeof ( __pyx_k_3 ) , 0 , 0 , 1 , 0 } ,
2010-09-15 04:02:44 +08:00
{ & __pyx_kp_u_5 , __pyx_k_5 , sizeof ( __pyx_k_5 ) , 0 , 1 , 0 , 0 } ,
2010-11-05 21:54:09 +08:00
{ & __pyx_kp_u_7 , __pyx_k_7 , sizeof ( __pyx_k_7 ) , 0 , 1 , 0 , 0 } ,
2011-09-03 19:28:32 +08:00
{ & __pyx_kp_u_9 , __pyx_k_9 , sizeof ( __pyx_k_9 ) , 0 , 1 , 0 , 0 } ,
2010-09-15 04:45:56 +08:00
{ & __pyx_n_s__L , __pyx_k__L , sizeof ( __pyx_k__L ) , 0 , 0 , 1 , 1 } ,
2010-09-15 04:02:44 +08:00
{ & __pyx_n_s__RuntimeError , __pyx_k__RuntimeError , sizeof ( __pyx_k__RuntimeError ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__ValueError , __pyx_k__ValueError , sizeof ( __pyx_k__ValueError ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__X , __pyx_k__X , sizeof ( __pyx_k__X ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s____main__ , __pyx_k____main__ , sizeof ( __pyx_k____main__ ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s____test__ , __pyx_k____test__ , sizeof ( __pyx_k____test__ ) , 0 , 0 , 1 , 1 } ,
2011-09-03 19:28:32 +08:00
{ & __pyx_n_s__cholesky_delete , __pyx_k__cholesky_delete , sizeof ( __pyx_k__cholesky_delete ) , 0 , 0 , 1 , 1 } ,
2010-11-05 21:54:09 +08:00
{ & __pyx_n_s__dtype , __pyx_k__dtype , sizeof ( __pyx_k__dtype ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__float32 , __pyx_k__float32 , sizeof ( __pyx_k__float32 ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__float64 , __pyx_k__float64 , sizeof ( __pyx_k__float64 ) , 0 , 0 , 1 , 1 } ,
2010-09-15 04:45:56 +08:00
{ & __pyx_n_s__go_out , __pyx_k__go_out , sizeof ( __pyx_k__go_out ) , 0 , 0 , 1 , 1 } ,
2010-11-05 21:54:09 +08:00
{ & __pyx_n_s__min_pos , __pyx_k__min_pos , sizeof ( __pyx_k__min_pos ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__name , __pyx_k__name , sizeof ( __pyx_k__name ) , 0 , 0 , 1 , 1 } ,
2010-09-15 04:02:44 +08:00
{ & __pyx_n_s__np , __pyx_k__np , sizeof ( __pyx_k__np ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__numpy , __pyx_k__numpy , sizeof ( __pyx_k__numpy ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__range , __pyx_k__range , sizeof ( __pyx_k__range ) , 0 , 0 , 1 , 1 } ,
2010-11-05 21:54:09 +08:00
{ & __pyx_n_s__size , __pyx_k__size , sizeof ( __pyx_k__size ) , 0 , 0 , 1 , 1 } ,
2010-09-15 04:02:44 +08:00
{ & __pyx_n_s__solve_triangular , __pyx_k__solve_triangular , sizeof ( __pyx_k__solve_triangular ) , 0 , 0 , 1 , 1 } ,
{ & __pyx_n_s__y , __pyx_k__y , sizeof ( __pyx_k__y ) , 0 , 0 , 1 , 1 } ,
{ 0 , 0 , 0 , 0 , 0 , 0 , 0 }
2010-09-06 22:15:53 +08:00
} ;
static int __Pyx_InitCachedBuiltins ( void ) {
2010-11-22 21:56:37 +08:00
__pyx_builtin_ValueError = __Pyx_GetName ( __pyx_b , __pyx_n_s__ValueError ) ; if ( ! __pyx_builtin_ValueError ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 58 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_builtin_range = __Pyx_GetName ( __pyx_b , __pyx_n_s__range ) ; if ( ! __pyx_builtin_range ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 64 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-09-03 19:28:32 +08:00
__pyx_builtin_RuntimeError = __Pyx_GetName ( __pyx_b , __pyx_n_s__RuntimeError ) ; if ( ! __pyx_builtin_RuntimeError ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 795 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
return 0 ;
__pyx_L1_error : ;
return - 1 ;
}
static int __Pyx_InitCachedConstants ( void ) {
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext ( " __Pyx_InitCachedConstants " ) ;
/* "sklearn/utils/arrayfuncs.pyx":58
* return _double_min_pos ( < double * > X . data , X . size )
* else :
* raise ValueError ( ' Unsupported dtype for array X ' ) # < < < < < < < < < < < < < <
*
*
*/
__pyx_k_tuple_2 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_2 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 58 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_2 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_s_1 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_2 , 0 , ( ( PyObject * ) __pyx_kp_s_1 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_s_1 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_2 ) ) ;
/* "sklearn/utils/arrayfuncs.pyx":101
* lda , < float * > y . data , 1 ) ;
* else :
* raise ValueError ( ' Unsupported or inconsistent dtype in arrays X , y ' ) # < < < < < < < < < < < < < <
*
*
*/
__pyx_k_tuple_4 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_4 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 101 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_4 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_s_3 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_4 , 0 , ( ( PyObject * ) __pyx_kp_s_3 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_s_3 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_4 ) ) ;
/* "numpy.pxd":211
* if ( ( flags & pybuf . PyBUF_C_CONTIGUOUS = = pybuf . PyBUF_C_CONTIGUOUS )
* and not PyArray_CHKFLAGS ( self , NPY_C_CONTIGUOUS ) ) :
* raise ValueError ( u " ndarray is not C contiguous " ) # < < < < < < < < < < < < < <
*
* if ( ( flags & pybuf . PyBUF_F_CONTIGUOUS = = pybuf . PyBUF_F_CONTIGUOUS )
*/
__pyx_k_tuple_6 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_6 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 211 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_6 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_u_5 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_6 , 0 , ( ( PyObject * ) __pyx_kp_u_5 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_u_5 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_6 ) ) ;
/* "numpy.pxd":215
* if ( ( flags & pybuf . PyBUF_F_CONTIGUOUS = = pybuf . PyBUF_F_CONTIGUOUS )
* and not PyArray_CHKFLAGS ( self , NPY_F_CONTIGUOUS ) ) :
* raise ValueError ( u " ndarray is not Fortran contiguous " ) # < < < < < < < < < < < < < <
*
* info . buf = PyArray_DATA ( self )
*/
__pyx_k_tuple_8 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_8 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 215 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_8 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_u_7 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_8 , 0 , ( ( PyObject * ) __pyx_kp_u_7 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_u_7 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_8 ) ) ;
/* "numpy.pxd":253
* if ( ( descr . byteorder = = ' > ' and little_endian ) or
* ( descr . byteorder = = ' < ' and not little_endian ) ) :
* raise ValueError ( u " Non-native byte order not supported " ) # < < < < < < < < < < < < < <
* if t = = NPY_BYTE : f = " b "
* elif t = = NPY_UBYTE : f = " B "
*/
__pyx_k_tuple_10 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_10 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 253 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_10 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_u_9 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_10 , 0 , ( ( PyObject * ) __pyx_kp_u_9 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_u_9 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_10 ) ) ;
/* "numpy.pxd":795
*
* if ( end - f ) - ( new_offset - offset [ 0 ] ) < 15 :
* raise RuntimeError ( u " Format string allocated too short, see comment in numpy.pxd " ) # < < < < < < < < < < < < < <
*
* if ( ( child . byteorder = = ' > ' and little_endian ) or
*/
__pyx_k_tuple_13 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_13 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 795 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_13 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_u_12 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_13 , 0 , ( ( PyObject * ) __pyx_kp_u_12 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_u_12 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_13 ) ) ;
/* "numpy.pxd":799
* if ( ( child . byteorder = = ' > ' and little_endian ) or
* ( child . byteorder = = ' < ' and not little_endian ) ) :
* raise ValueError ( u " Non-native byte order not supported " ) # < < < < < < < < < < < < < <
* # One could encode it in the format string and have Cython
* # complain instead , BUT : < and > in format strings also imply
*/
__pyx_k_tuple_14 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_14 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 799 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_14 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_u_9 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_14 , 0 , ( ( PyObject * ) __pyx_kp_u_9 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_u_9 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_14 ) ) ;
/* "numpy.pxd":819
* t = child . type_num
* if end - f < 5 :
* raise RuntimeError ( u " Format string allocated too short. " ) # < < < < < < < < < < < < < <
*
* # Until ticket # 99 is fixed , use integers to avoid warnings
*/
__pyx_k_tuple_16 = PyTuple_New ( 1 ) ; if ( unlikely ( ! __pyx_k_tuple_16 ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 819 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_k_tuple_16 ) ) ;
__Pyx_INCREF ( ( ( PyObject * ) __pyx_kp_u_15 ) ) ;
PyTuple_SET_ITEM ( __pyx_k_tuple_16 , 0 , ( ( PyObject * ) __pyx_kp_u_15 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_kp_u_15 ) ) ;
__Pyx_GIVEREF ( ( ( PyObject * ) __pyx_k_tuple_16 ) ) ;
__Pyx_RefNannyFinishContext ( ) ;
2010-09-06 22:15:53 +08:00
return 0 ;
__pyx_L1_error : ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyFinishContext ( ) ;
2010-09-06 22:15:53 +08:00
return - 1 ;
}
static int __Pyx_InitGlobals ( void ) {
if ( __Pyx_InitStrings ( __pyx_string_tab ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2010-09-15 04:02:44 +08:00
__pyx_int_15 = PyInt_FromLong ( 15 ) ; if ( unlikely ( ! __pyx_int_15 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2010-09-06 22:15:53 +08:00
return 0 ;
__pyx_L1_error : ;
return - 1 ;
}
# if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initarrayfuncs ( void ) ; /*proto*/
PyMODINIT_FUNC initarrayfuncs ( void )
# else
PyMODINIT_FUNC PyInit_arrayfuncs ( void ) ; /*proto*/
PyMODINIT_FUNC PyInit_arrayfuncs ( void )
# endif
{
2010-09-15 04:02:44 +08:00
PyObject * __pyx_t_1 = NULL ;
2011-09-03 19:28:32 +08:00
__Pyx_RefNannyDeclarations
2010-09-15 04:02:44 +08:00
# if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI ( " refnanny " ) ;
if ( ! __Pyx_RefNanny ) {
2010-09-06 22:15:53 +08:00
PyErr_Clear ( ) ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNanny = __Pyx_RefNannyImportAPI ( " Cython.Runtime.refnanny " ) ;
if ( ! __Pyx_RefNanny )
Py_FatalError ( " failed to import 'refnanny' module " ) ;
2010-09-06 22:15:53 +08:00
}
# endif
2011-09-03 19:28:32 +08:00
__Pyx_RefNannySetupContext ( " PyMODINIT_FUNC PyInit_arrayfuncs(void) " ) ;
if ( __Pyx_check_binary_version ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
__pyx_empty_tuple = PyTuple_New ( 0 ) ; if ( unlikely ( ! __pyx_empty_tuple ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__pyx_empty_bytes = PyBytes_FromStringAndSize ( " " , 0 ) ; if ( unlikely ( ! __pyx_empty_bytes ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-09-03 19:28:32 +08:00
# ifdef __pyx_binding_PyCFunctionType_USED
if ( __pyx_binding_PyCFunctionType_init ( ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
# endif
2010-09-06 22:15:53 +08:00
/*--- Library function declarations ---*/
/*--- Threads initialization code ---*/
# if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
# ifdef WITH_THREAD /* Python build with threading support? */
PyEval_InitThreads ( ) ;
# endif
# endif
/*--- Module creation code ---*/
# if PY_MAJOR_VERSION < 3
2011-09-03 19:28:32 +08:00
__pyx_m = Py_InitModule4 ( __Pyx_NAMESTR ( " arrayfuncs " ) , __pyx_methods , __Pyx_DOCSTR ( __pyx_k_17 ) , 0 , PYTHON_API_VERSION ) ;
2010-09-06 22:15:53 +08:00
# else
__pyx_m = PyModule_Create ( & __pyx_moduledef ) ;
# endif
if ( ! __pyx_m ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
# if PY_MAJOR_VERSION < 3
Py_INCREF ( __pyx_m ) ;
# endif
__pyx_b = PyImport_AddModule ( __Pyx_NAMESTR ( __Pyx_BUILTIN_MODULE_NAME ) ) ;
if ( ! __pyx_b ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
if ( __Pyx_SetAttrString ( __pyx_m , " __builtins__ " , __pyx_b ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2010-09-15 04:02:44 +08:00
/*--- Initialize various global constants etc. ---*/
if ( unlikely ( __Pyx_InitGlobals ( ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-09-03 19:28:32 +08:00
if ( __pyx_module_is_main_sklearn__utils__arrayfuncs ) {
2010-09-15 04:02:44 +08:00
if ( __Pyx_SetAttrString ( __pyx_m , " __name__ " , __pyx_n_s____main__ ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; } ;
2010-09-06 22:15:53 +08:00
}
/*--- Builtin init code ---*/
if ( unlikely ( __Pyx_InitCachedBuiltins ( ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2011-09-03 19:28:32 +08:00
/*--- Constants init code ---*/
if ( unlikely ( __Pyx_InitCachedConstants ( ) < 0 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-06 22:15:53 +08:00
/*--- Global init code ---*/
2011-09-03 19:28:32 +08:00
/*--- Variable export code ---*/
2010-09-06 22:15:53 +08:00
/*--- Function export code ---*/
/*--- Type init code ---*/
/*--- Type import code ---*/
2011-09-03 19:28:32 +08:00
__pyx_ptype_5numpy_dtype = __Pyx_ImportType ( " numpy " , " dtype " , sizeof ( PyArray_Descr ) , 0 ) ; if ( unlikely ( ! __pyx_ptype_5numpy_dtype ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 151 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_ptype_5numpy_flatiter = __Pyx_ImportType ( " numpy " , " flatiter " , sizeof ( PyArrayIterObject ) , 0 ) ; if ( unlikely ( ! __pyx_ptype_5numpy_flatiter ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 161 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_ptype_5numpy_broadcast = __Pyx_ImportType ( " numpy " , " broadcast " , sizeof ( PyArrayMultiIterObject ) , 0 ) ; if ( unlikely ( ! __pyx_ptype_5numpy_broadcast ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 165 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_ptype_5numpy_ndarray = __Pyx_ImportType ( " numpy " , " ndarray " , sizeof ( PyArrayObject ) , 0 ) ; if ( unlikely ( ! __pyx_ptype_5numpy_ndarray ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 174 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__pyx_ptype_5numpy_ufunc = __Pyx_ImportType ( " numpy " , " ufunc " , sizeof ( PyUFuncObject ) , 0 ) ; if ( unlikely ( ! __pyx_ptype_5numpy_ufunc ) ) { __pyx_filename = __pyx_f [ 1 ] ; __pyx_lineno = 857 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
/*--- Variable import code ---*/
2010-09-06 22:15:53 +08:00
/*--- Function import code ---*/
/*--- Execution code ---*/
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":6
2010-09-06 22:15:53 +08:00
* " " "
* cimport numpy as np
* import numpy as np # < < < < < < < < < < < < < <
*
2010-11-05 21:54:09 +08:00
* cimport cython
2010-09-06 22:15:53 +08:00
*/
2011-09-03 19:28:32 +08:00
__pyx_t_1 = __Pyx_Import ( ( ( PyObject * ) __pyx_n_s__numpy ) , 0 , - 1 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 6 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
2010-09-15 04:02:44 +08:00
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__np , __pyx_t_1 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 6 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
2011-09-03 19:28:32 +08:00
/* "sklearn/utils/arrayfuncs.pyx":47
2010-09-15 04:02:44 +08:00
*
2010-09-06 22:15:53 +08:00
*
2011-09-03 19:28:32 +08:00
* def min_pos ( np . ndarray X ) : # < < < < < < < < < < < < < <
* " " "
* Find the minimum value of an array over positivie values
*/
__pyx_t_1 = PyCFunction_NewEx ( & __pyx_mdef_7sklearn_5utils_10arrayfuncs_min_pos , NULL , __pyx_n_s_18 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 47 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__min_pos , __pyx_t_1 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 47 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
/* "sklearn/utils/arrayfuncs.pyx":78
* return min_val
*
* def solve_triangular ( np . ndarray X , np . ndarray y ) : # < < < < < < < < < < < < < <
* " " "
* Solves a triangular system ( overwrites y )
*/
__pyx_t_1 = PyCFunction_NewEx ( & __pyx_mdef_7sklearn_5utils_10arrayfuncs_1solve_triangular , NULL , __pyx_n_s_18 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 78 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__solve_triangular , __pyx_t_1 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 78 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
/* "sklearn/utils/arrayfuncs.pyx":104
*
*
* def cholesky_delete ( np . ndarray L , int go_out ) : # < < < < < < < < < < < < < <
*
* cdef int n = < int > L . shape [ 0 ]
*/
__pyx_t_1 = PyCFunction_NewEx ( & __pyx_mdef_7sklearn_5utils_10arrayfuncs_2cholesky_delete , NULL , __pyx_n_s_18 ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( __pyx_t_1 ) ;
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s__cholesky_delete , __pyx_t_1 ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 104 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( __pyx_t_1 ) ; __pyx_t_1 = 0 ;
/* "sklearn/utils/arrayfuncs.pyx":1
* " " " # <<<<<<<<<<<<<<
* Small collection of auxiliary functions that operate on arrays
*
*/
__pyx_t_1 = PyDict_New ( ) ; if ( unlikely ( ! __pyx_t_1 ) ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_GOTREF ( ( ( PyObject * ) __pyx_t_1 ) ) ;
if ( PyObject_SetAttr ( __pyx_m , __pyx_n_s____test__ , ( ( PyObject * ) __pyx_t_1 ) ) < 0 ) { __pyx_filename = __pyx_f [ 0 ] ; __pyx_lineno = 1 ; __pyx_clineno = __LINE__ ; goto __pyx_L1_error ; }
__Pyx_DECREF ( ( ( PyObject * ) __pyx_t_1 ) ) ; __pyx_t_1 = 0 ;
/* "numpy.pxd":971
* arr . base = baseptr
*
* cdef inline object get_array_base ( ndarray arr ) : # < < < < < < < < < < < < < <
* if arr . base is NULL :
* return None
2010-09-06 22:15:53 +08:00
*/
goto __pyx_L0 ;
__pyx_L1_error : ;
2010-09-15 04:02:44 +08:00
__Pyx_XDECREF ( __pyx_t_1 ) ;
if ( __pyx_m ) {
2011-09-03 19:28:32 +08:00
__Pyx_AddTraceback ( " init sklearn.utils.arrayfuncs " , __pyx_clineno , __pyx_lineno , __pyx_filename ) ;
2010-09-15 04:02:44 +08:00
Py_DECREF ( __pyx_m ) ; __pyx_m = 0 ;
} else if ( ! PyErr_Occurred ( ) ) {
2011-09-03 19:28:32 +08:00
PyErr_SetString ( PyExc_ImportError , " init sklearn.utils.arrayfuncs " ) ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
__pyx_L0 : ;
2010-09-15 04:02:44 +08:00
__Pyx_RefNannyFinishContext ( ) ;
2010-09-06 22:15:53 +08:00
# if PY_MAJOR_VERSION < 3
return ;
# else
return __pyx_m ;
# endif
}
/* Runtime support code */
2011-09-03 19:28:32 +08:00
# if CYTHON_REFNANNY
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 ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
# endif /* CYTHON_REFNANNY */
2010-09-06 22:15:53 +08:00
2011-09-03 19:28:32 +08:00
static PyObject * __Pyx_GetName ( PyObject * dict , PyObject * name ) {
PyObject * result ;
result = PyObject_GetAttr ( dict , name ) ;
if ( ! result ) {
if ( dict ! = __pyx_b ) {
PyErr_Clear ( ) ;
result = PyObject_GetAttr ( __pyx_b , name ) ;
}
if ( ! result ) {
PyErr_SetObject ( PyExc_NameError , name ) ;
}
}
return result ;
}
static int __Pyx_ArgTypeTest ( PyObject * obj , PyTypeObject * type , int none_allowed ,
const char * name , int exact )
2010-09-06 22:15:53 +08:00
{
2011-09-03 19:28:32 +08:00
if ( ! type ) {
PyErr_Format ( PyExc_SystemError , " Missing type object " ) ;
return 0 ;
}
if ( none_allowed & & obj = = Py_None ) return 1 ;
else if ( exact ) {
if ( Py_TYPE ( obj ) = = type ) return 1 ;
}
else {
if ( PyObject_TypeCheck ( obj , type ) ) return 1 ;
}
2010-09-06 22:15:53 +08:00
PyErr_Format ( PyExc_TypeError ,
2011-09-03 19:28:32 +08:00
" Argument '%s' has incorrect type (expected %s, got %s) " ,
name , type - > tp_name , Py_TYPE ( obj ) - > tp_name ) ;
return 0 ;
}
static CYTHON_INLINE void __Pyx_ErrRestore ( PyObject * type , PyObject * value , PyObject * tb ) {
PyObject * tmp_type , * tmp_value , * tmp_tb ;
PyThreadState * tstate = PyThreadState_GET ( ) ;
tmp_type = tstate - > curexc_type ;
tmp_value = tstate - > curexc_value ;
tmp_tb = tstate - > curexc_traceback ;
tstate - > curexc_type = type ;
tstate - > curexc_value = value ;
tstate - > curexc_traceback = tb ;
Py_XDECREF ( tmp_type ) ;
Py_XDECREF ( tmp_value ) ;
Py_XDECREF ( tmp_tb ) ;
}
static CYTHON_INLINE void __Pyx_ErrFetch ( PyObject * * type , PyObject * * value , PyObject * * tb ) {
PyThreadState * tstate = PyThreadState_GET ( ) ;
* type = tstate - > curexc_type ;
* value = tstate - > curexc_value ;
* tb = tstate - > curexc_traceback ;
tstate - > curexc_type = 0 ;
tstate - > curexc_value = 0 ;
tstate - > curexc_traceback = 0 ;
}
# if PY_MAJOR_VERSION < 3
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) {
/* cause is unused */
Py_XINCREF ( type ) ;
Py_XINCREF ( value ) ;
Py_XINCREF ( tb ) ;
/* First, check the traceback argument, replacing None with NULL. */
if ( tb = = Py_None ) {
Py_DECREF ( tb ) ;
tb = 0 ;
}
else if ( tb ! = NULL & & ! PyTraceBack_Check ( tb ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: arg 3 must be a traceback or None " ) ;
goto raise_error ;
}
/* Next, replace a missing value with None */
if ( value = = NULL ) {
value = Py_None ;
Py_INCREF ( value ) ;
}
# if PY_VERSION_HEX < 0x02050000
if ( ! PyClass_Check ( type ) )
# else
if ( ! PyType_Check ( type ) )
# endif
{
/* Raising an instance. The value should be a dummy. */
if ( value ! = Py_None ) {
PyErr_SetString ( PyExc_TypeError ,
" instance exception may not have a separate value " ) ;
goto raise_error ;
}
/* Normalize to raise <class>, <instance> */
Py_DECREF ( value ) ;
value = type ;
# if PY_VERSION_HEX < 0x02050000
if ( PyInstance_Check ( type ) ) {
type = ( PyObject * ) ( ( PyInstanceObject * ) type ) - > in_class ;
Py_INCREF ( type ) ;
}
else {
type = 0 ;
PyErr_SetString ( PyExc_TypeError ,
" raise: exception must be an old-style class or instance " ) ;
goto raise_error ;
}
2010-09-06 22:15:53 +08:00
# else
2011-09-03 19:28:32 +08:00
type = ( PyObject * ) Py_TYPE ( type ) ;
Py_INCREF ( type ) ;
if ( ! PyType_IsSubtype ( ( PyTypeObject * ) type , ( PyTypeObject * ) PyExc_BaseException ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: exception class must be a subclass of BaseException " ) ;
goto raise_error ;
}
2010-09-06 22:15:53 +08:00
# endif
2011-09-03 19:28:32 +08:00
}
__Pyx_ErrRestore ( type , value , tb ) ;
return ;
raise_error :
Py_XDECREF ( value ) ;
Py_XDECREF ( type ) ;
Py_XDECREF ( tb ) ;
return ;
2010-09-06 22:15:53 +08:00
}
2011-09-03 19:28:32 +08:00
# else /* Python 3+ */
static void __Pyx_Raise ( PyObject * type , PyObject * value , PyObject * tb , PyObject * cause ) {
if ( tb = = Py_None ) {
tb = 0 ;
} else if ( tb & & ! PyTraceBack_Check ( tb ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: arg 3 must be a traceback or None " ) ;
goto bad ;
}
if ( value = = Py_None )
value = 0 ;
if ( PyExceptionInstance_Check ( type ) ) {
if ( value ) {
PyErr_SetString ( PyExc_TypeError ,
" instance exception may not have a separate value " ) ;
goto bad ;
}
value = type ;
type = ( PyObject * ) Py_TYPE ( value ) ;
} else if ( ! PyExceptionClass_Check ( type ) ) {
PyErr_SetString ( PyExc_TypeError ,
" raise: exception class must be a subclass of BaseException " ) ;
goto bad ;
}
if ( cause ) {
PyObject * fixed_cause ;
if ( PyExceptionClass_Check ( cause ) ) {
fixed_cause = PyObject_CallObject ( cause , NULL ) ;
if ( fixed_cause = = NULL )
goto bad ;
}
else if ( PyExceptionInstance_Check ( cause ) ) {
fixed_cause = cause ;
Py_INCREF ( fixed_cause ) ;
}
else {
PyErr_SetString ( PyExc_TypeError ,
" exception causes must derive from "
" BaseException " ) ;
goto bad ;
}
if ( ! value ) {
value = PyObject_CallObject ( type , NULL ) ;
}
PyException_SetCause ( value , fixed_cause ) ;
}
PyErr_SetObject ( type , value ) ;
if ( tb ) {
PyThreadState * tstate = PyThreadState_GET ( ) ;
PyObject * tmp_tb = tstate - > curexc_traceback ;
if ( tb ! = tmp_tb ) {
Py_INCREF ( tb ) ;
tstate - > curexc_traceback = tb ;
Py_XDECREF ( tmp_tb ) ;
}
}
bad :
return ;
}
# endif
2010-09-06 22:15:53 +08:00
static void __Pyx_RaiseArgtupleInvalid (
const char * func_name ,
int exact ,
Py_ssize_t num_min ,
Py_ssize_t num_max ,
Py_ssize_t num_found )
{
Py_ssize_t num_expected ;
2011-09-03 19:28:32 +08:00
const char * more_or_less ;
2010-09-06 22:15:53 +08:00
if ( num_found < num_min ) {
num_expected = num_min ;
more_or_less = " at least " ;
} else {
num_expected = num_max ;
more_or_less = " at most " ;
}
if ( exact ) {
more_or_less = " exactly " ;
}
PyErr_Format ( PyExc_TypeError ,
2011-09-03 19:28:32 +08:00
" %s() takes %s % " PY_FORMAT_SIZE_T " d positional argument%s (% " PY_FORMAT_SIZE_T " d given) " ,
func_name , more_or_less , num_expected ,
( num_expected = = 1 ) ? " " : " s " , num_found ) ;
}
static void __Pyx_RaiseDoubleKeywordsError (
const char * func_name ,
PyObject * kw_name )
{
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION >= 3
" %s() got multiple values for keyword argument '%U' " , func_name , kw_name ) ;
2010-09-06 22:15:53 +08:00
# else
2011-09-03 19:28:32 +08:00
" %s() got multiple values for keyword argument '%s' " , func_name ,
PyString_AS_STRING ( kw_name ) ) ;
2010-09-06 22:15:53 +08:00
# endif
}
static int __Pyx_ParseOptionalKeywords (
PyObject * kwds ,
PyObject * * argnames [ ] ,
PyObject * kwds2 ,
PyObject * values [ ] ,
Py_ssize_t num_pos_args ,
const char * function_name )
{
PyObject * key = 0 , * value = 0 ;
Py_ssize_t pos = 0 ;
PyObject * * * name ;
PyObject * * * first_kw_arg = argnames + num_pos_args ;
while ( PyDict_Next ( kwds , & pos , & key , & value ) ) {
name = first_kw_arg ;
while ( * name & & ( * * name ! = key ) ) name + + ;
if ( * name ) {
values [ name - argnames ] = value ;
} else {
# if PY_MAJOR_VERSION < 3
if ( unlikely ( ! PyString_CheckExact ( key ) ) & & unlikely ( ! PyString_Check ( key ) ) ) {
# else
if ( unlikely ( ! PyUnicode_CheckExact ( key ) ) & & unlikely ( ! PyUnicode_Check ( key ) ) ) {
# endif
goto invalid_keyword_type ;
} else {
for ( name = first_kw_arg ; * name ; name + + ) {
# if PY_MAJOR_VERSION >= 3
if ( PyUnicode_GET_SIZE ( * * name ) = = PyUnicode_GET_SIZE ( key ) & &
PyUnicode_Compare ( * * name , key ) = = 0 ) break ;
# else
if ( PyString_GET_SIZE ( * * name ) = = PyString_GET_SIZE ( key ) & &
_PyString_Eq ( * * name , key ) ) break ;
# endif
}
if ( * name ) {
values [ name - argnames ] = value ;
} else {
/* unexpected keyword found */
for ( name = argnames ; name ! = first_kw_arg ; name + + ) {
if ( * * name = = key ) goto arg_passed_twice ;
# if PY_MAJOR_VERSION >= 3
if ( PyUnicode_GET_SIZE ( * * name ) = = PyUnicode_GET_SIZE ( key ) & &
PyUnicode_Compare ( * * name , key ) = = 0 ) goto arg_passed_twice ;
# else
if ( PyString_GET_SIZE ( * * name ) = = PyString_GET_SIZE ( key ) & &
_PyString_Eq ( * * name , key ) ) goto arg_passed_twice ;
# endif
}
if ( kwds2 ) {
if ( unlikely ( PyDict_SetItem ( kwds2 , key , value ) ) ) goto bad ;
} else {
goto invalid_keyword ;
}
}
}
}
}
return 0 ;
arg_passed_twice :
__Pyx_RaiseDoubleKeywordsError ( function_name , * * name ) ;
goto bad ;
invalid_keyword_type :
PyErr_Format ( PyExc_TypeError ,
" %s() keywords must be strings " , function_name ) ;
goto bad ;
invalid_keyword :
PyErr_Format ( PyExc_TypeError ,
# if PY_MAJOR_VERSION < 3
" %s() got an unexpected keyword argument '%s' " ,
function_name , PyString_AsString ( key ) ) ;
# else
" %s() got an unexpected keyword argument '%U' " ,
function_name , key ) ;
# endif
bad :
return - 1 ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError ( Py_ssize_t index ) {
PyErr_Format ( PyExc_ValueError ,
2011-09-03 19:28:32 +08:00
" need more than % " PY_FORMAT_SIZE_T " d value%s to unpack " ,
index , ( index = = 1 ) ? " " : " s " ) ;
2010-09-15 04:02:44 +08:00
}
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError ( Py_ssize_t expected ) {
PyErr_Format ( PyExc_ValueError ,
" too many values to unpack (expected % " PY_FORMAT_SIZE_T " d) " , expected ) ;
2010-09-06 22:15:53 +08:00
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError ( void ) {
PyErr_SetString ( PyExc_TypeError , " 'NoneType' object is not iterable " ) ;
}
static void __Pyx_UnpackTupleError ( PyObject * t , Py_ssize_t index ) {
if ( t = = Py_None ) {
__Pyx_RaiseNoneNotIterableError ( ) ;
} else if ( PyTuple_GET_SIZE ( t ) < index ) {
__Pyx_RaiseNeedMoreValuesError ( PyTuple_GET_SIZE ( t ) ) ;
} else {
2011-09-03 19:28:32 +08:00
__Pyx_RaiseTooManyValuesError ( index ) ;
2010-09-15 04:02:44 +08:00
}
}
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_TypeTest ( PyObject * obj , PyTypeObject * type ) {
if ( unlikely ( ! type ) ) {
2010-09-06 22:15:53 +08:00
PyErr_Format ( PyExc_SystemError , " Missing type object " ) ;
return 0 ;
}
2011-09-03 19:28:32 +08:00
if ( likely ( PyObject_TypeCheck ( obj , type ) ) )
return 1 ;
PyErr_Format ( PyExc_TypeError , " Cannot convert %.200s to %.200s " ,
Py_TYPE ( obj ) - > tp_name , type - > tp_name ) ;
2010-09-06 22:15:53 +08:00
return 0 ;
}
2011-09-03 19:28:32 +08:00
static PyObject * __Pyx_Import ( PyObject * name , PyObject * from_list , long level ) {
PyObject * py_import = 0 ;
2010-09-06 22:15:53 +08:00
PyObject * empty_list = 0 ;
PyObject * module = 0 ;
PyObject * global_dict = 0 ;
PyObject * empty_dict = 0 ;
PyObject * list ;
2011-09-03 19:28:32 +08:00
py_import = __Pyx_GetAttrString ( __pyx_b , " __import__ " ) ;
if ( ! py_import )
2010-09-06 22:15:53 +08:00
goto bad ;
if ( from_list )
list = from_list ;
else {
empty_list = PyList_New ( 0 ) ;
if ( ! empty_list )
goto bad ;
list = empty_list ;
}
global_dict = PyModule_GetDict ( __pyx_m ) ;
if ( ! global_dict )
goto bad ;
empty_dict = PyDict_New ( ) ;
if ( ! empty_dict )
goto bad ;
2011-09-03 19:28:32 +08:00
# if PY_VERSION_HEX >= 0x02050000
{
PyObject * py_level = PyInt_FromLong ( level ) ;
if ( ! py_level )
goto bad ;
module = PyObject_CallFunctionObjArgs ( py_import ,
name , global_dict , empty_dict , list , py_level , NULL ) ;
Py_DECREF ( py_level ) ;
}
# else
if ( level > 0 ) {
PyErr_SetString ( PyExc_RuntimeError , " Relative import is not supported for Python <=2.4. " ) ;
goto bad ;
}
module = PyObject_CallFunctionObjArgs ( py_import ,
2010-09-06 22:15:53 +08:00
name , global_dict , empty_dict , list , NULL ) ;
2011-09-03 19:28:32 +08:00
# endif
2010-09-06 22:15:53 +08:00
bad :
Py_XDECREF ( empty_list ) ;
2011-09-03 19:28:32 +08:00
Py_XDECREF ( py_import ) ;
2010-09-06 22:15:53 +08:00
Py_XDECREF ( empty_dict ) ;
return module ;
}
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_PyBytes_Equals ( PyObject * s1 , PyObject * s2 , int equals ) {
if ( s1 = = s2 ) { /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */
return ( equals = = Py_EQ ) ;
} else if ( PyBytes_CheckExact ( s1 ) & PyBytes_CheckExact ( s2 ) ) {
if ( PyBytes_GET_SIZE ( s1 ) ! = PyBytes_GET_SIZE ( s2 ) ) {
return ( equals = = Py_NE ) ;
} else if ( PyBytes_GET_SIZE ( s1 ) = = 1 ) {
if ( equals = = Py_EQ )
return ( PyBytes_AS_STRING ( s1 ) [ 0 ] = = PyBytes_AS_STRING ( s2 ) [ 0 ] ) ;
else
return ( PyBytes_AS_STRING ( s1 ) [ 0 ] ! = PyBytes_AS_STRING ( s2 ) [ 0 ] ) ;
} else {
int result = memcmp ( PyBytes_AS_STRING ( s1 ) , PyBytes_AS_STRING ( s2 ) , ( size_t ) PyBytes_GET_SIZE ( s1 ) ) ;
return ( equals = = Py_EQ ) ? ( result = = 0 ) : ( result ! = 0 ) ;
2010-11-05 21:54:09 +08:00
}
2011-09-03 19:28:32 +08:00
} else if ( ( s1 = = Py_None ) & PyBytes_CheckExact ( s2 ) ) {
return ( equals = = Py_NE ) ;
} else if ( ( s2 = = Py_None ) & PyBytes_CheckExact ( s1 ) ) {
return ( equals = = Py_NE ) ;
} else {
int result ;
PyObject * py_result = PyObject_RichCompare ( s1 , s2 , equals ) ;
if ( ! py_result )
return - 1 ;
result = __Pyx_PyObject_IsTrue ( py_result ) ;
Py_DECREF ( py_result ) ;
return result ;
2010-11-05 21:54:09 +08:00
}
2010-09-15 04:02:44 +08:00
}
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_PyUnicode_Equals ( PyObject * s1 , PyObject * s2 , int equals ) {
if ( s1 = = s2 ) { /* as done by PyObject_RichCompareBool(); also catches the (interned) empty string */
return ( equals = = Py_EQ ) ;
} else if ( PyUnicode_CheckExact ( s1 ) & PyUnicode_CheckExact ( s2 ) ) {
if ( PyUnicode_GET_SIZE ( s1 ) ! = PyUnicode_GET_SIZE ( s2 ) ) {
return ( equals = = Py_NE ) ;
} else if ( PyUnicode_GET_SIZE ( s1 ) = = 1 ) {
if ( equals = = Py_EQ )
return ( PyUnicode_AS_UNICODE ( s1 ) [ 0 ] = = PyUnicode_AS_UNICODE ( s2 ) [ 0 ] ) ;
else
return ( PyUnicode_AS_UNICODE ( s1 ) [ 0 ] ! = PyUnicode_AS_UNICODE ( s2 ) [ 0 ] ) ;
} else {
int result = PyUnicode_Compare ( s1 , s2 ) ;
if ( ( result = = - 1 ) & & unlikely ( PyErr_Occurred ( ) ) )
return - 1 ;
return ( equals = = Py_EQ ) ? ( result = = 0 ) : ( result ! = 0 ) ;
2010-11-05 21:54:09 +08:00
}
2011-09-03 19:28:32 +08:00
} else if ( ( s1 = = Py_None ) & PyUnicode_CheckExact ( s2 ) ) {
return ( equals = = Py_NE ) ;
} else if ( ( s2 = = Py_None ) & PyUnicode_CheckExact ( s1 ) ) {
return ( equals = = Py_NE ) ;
} else {
int result ;
PyObject * py_result = PyObject_RichCompare ( s1 , s2 , equals ) ;
if ( ! py_result )
return - 1 ;
result = __Pyx_PyObject_IsTrue ( py_result ) ;
Py_DECREF ( py_result ) ;
return result ;
2010-11-05 21:54:09 +08:00
}
}
2010-09-15 04:02:44 +08:00
# if CYTHON_CCOMPLEX
# ifdef __cplusplus
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts ( float x , float y ) {
return : : std : : complex < float > ( x , y ) ;
}
# else
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts ( float x , float y ) {
return x + y * ( __pyx_t_float_complex ) _Complex_I ;
}
# endif
# else
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts ( float x , float y ) {
__pyx_t_float_complex z ;
z . real = x ;
z . imag = y ;
return z ;
}
# endif
# if CYTHON_CCOMPLEX
# else
static CYTHON_INLINE int __Pyx_c_eqf ( __pyx_t_float_complex a , __pyx_t_float_complex b ) {
return ( a . real = = b . real ) & & ( a . imag = = b . imag ) ;
}
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf ( __pyx_t_float_complex a , __pyx_t_float_complex b ) {
__pyx_t_float_complex z ;
z . real = a . real + b . real ;
z . imag = a . imag + b . imag ;
return z ;
}
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff ( __pyx_t_float_complex a , __pyx_t_float_complex b ) {
__pyx_t_float_complex z ;
z . real = a . real - b . real ;
z . imag = a . imag - b . imag ;
return z ;
}
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf ( __pyx_t_float_complex a , __pyx_t_float_complex b ) {
__pyx_t_float_complex z ;
z . real = a . real * b . real - a . imag * b . imag ;
z . imag = a . real * b . imag + a . imag * b . real ;
return z ;
}
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf ( __pyx_t_float_complex a , __pyx_t_float_complex b ) {
__pyx_t_float_complex z ;
float denom = b . real * b . real + b . imag * b . imag ;
z . real = ( a . real * b . real + a . imag * b . imag ) / denom ;
z . imag = ( a . imag * b . real - a . real * b . imag ) / denom ;
return z ;
}
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf ( __pyx_t_float_complex a ) {
__pyx_t_float_complex z ;
z . real = - a . real ;
z . imag = - a . imag ;
return z ;
}
static CYTHON_INLINE int __Pyx_c_is_zerof ( __pyx_t_float_complex a ) {
return ( a . real = = 0 ) & & ( a . imag = = 0 ) ;
}
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf ( __pyx_t_float_complex a ) {
__pyx_t_float_complex z ;
z . real = a . real ;
z . imag = - a . imag ;
return z ;
}
2011-09-03 19:28:32 +08:00
# if 1
static CYTHON_INLINE float __Pyx_c_absf ( __pyx_t_float_complex z ) {
# if !defined(HAVE_HYPOT) || defined(_MSC_VER)
return sqrtf ( z . real * z . real + z . imag * z . imag ) ;
# else
return hypotf ( z . real , z . imag ) ;
# endif
}
static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf ( __pyx_t_float_complex a , __pyx_t_float_complex b ) {
__pyx_t_float_complex z ;
float r , lnr , theta , z_r , z_theta ;
if ( b . imag = = 0 & & b . real = = ( int ) b . real ) {
if ( b . real < 0 ) {
float denom = a . real * a . real + a . imag * a . imag ;
a . real = a . real / denom ;
a . imag = - a . imag / denom ;
b . real = - b . real ;
}
switch ( ( int ) b . real ) {
case 0 :
z . real = 1 ;
z . imag = 0 ;
return z ;
case 1 :
return a ;
case 2 :
z = __Pyx_c_prodf ( a , a ) ;
return __Pyx_c_prodf ( a , a ) ;
case 3 :
z = __Pyx_c_prodf ( a , a ) ;
return __Pyx_c_prodf ( z , a ) ;
case 4 :
z = __Pyx_c_prodf ( a , a ) ;
return __Pyx_c_prodf ( z , z ) ;
}
}
if ( a . imag = = 0 ) {
if ( a . real = = 0 ) {
return a ;
}
r = a . real ;
theta = 0 ;
} else {
r = __Pyx_c_absf ( a ) ;
theta = atan2f ( a . imag , a . real ) ;
}
lnr = logf ( r ) ;
z_r = expf ( lnr * b . real - theta * b . imag ) ;
z_theta = theta * b . real + lnr * b . imag ;
z . real = z_r * cosf ( z_theta ) ;
z . imag = z_r * sinf ( z_theta ) ;
return z ;
}
# endif
2010-09-15 04:02:44 +08:00
# endif
# if CYTHON_CCOMPLEX
# ifdef __cplusplus
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts ( double x , double y ) {
return : : std : : complex < double > ( x , y ) ;
}
# else
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts ( double x , double y ) {
return x + y * ( __pyx_t_double_complex ) _Complex_I ;
}
# endif
# else
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts ( double x , double y ) {
__pyx_t_double_complex z ;
z . real = x ;
z . imag = y ;
return z ;
}
# endif
# if CYTHON_CCOMPLEX
# else
static CYTHON_INLINE int __Pyx_c_eq ( __pyx_t_double_complex a , __pyx_t_double_complex b ) {
return ( a . real = = b . real ) & & ( a . imag = = b . imag ) ;
}
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum ( __pyx_t_double_complex a , __pyx_t_double_complex b ) {
__pyx_t_double_complex z ;
z . real = a . real + b . real ;
z . imag = a . imag + b . imag ;
return z ;
}
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff ( __pyx_t_double_complex a , __pyx_t_double_complex b ) {
__pyx_t_double_complex z ;
z . real = a . real - b . real ;
z . imag = a . imag - b . imag ;
return z ;
}
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod ( __pyx_t_double_complex a , __pyx_t_double_complex b ) {
__pyx_t_double_complex z ;
z . real = a . real * b . real - a . imag * b . imag ;
z . imag = a . real * b . imag + a . imag * b . real ;
return z ;
}
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot ( __pyx_t_double_complex a , __pyx_t_double_complex b ) {
__pyx_t_double_complex z ;
double denom = b . real * b . real + b . imag * b . imag ;
z . real = ( a . real * b . real + a . imag * b . imag ) / denom ;
z . imag = ( a . imag * b . real - a . real * b . imag ) / denom ;
return z ;
}
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg ( __pyx_t_double_complex a ) {
__pyx_t_double_complex z ;
z . real = - a . real ;
z . imag = - a . imag ;
return z ;
}
static CYTHON_INLINE int __Pyx_c_is_zero ( __pyx_t_double_complex a ) {
return ( a . real = = 0 ) & & ( a . imag = = 0 ) ;
}
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj ( __pyx_t_double_complex a ) {
__pyx_t_double_complex z ;
z . real = a . real ;
z . imag = - a . imag ;
return z ;
}
2011-09-03 19:28:32 +08:00
# if 1
static CYTHON_INLINE double __Pyx_c_abs ( __pyx_t_double_complex z ) {
# if !defined(HAVE_HYPOT) || defined(_MSC_VER)
return sqrt ( z . real * z . real + z . imag * z . imag ) ;
# else
return hypot ( z . real , z . imag ) ;
# endif
}
static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow ( __pyx_t_double_complex a , __pyx_t_double_complex b ) {
__pyx_t_double_complex z ;
double r , lnr , theta , z_r , z_theta ;
if ( b . imag = = 0 & & b . real = = ( int ) b . real ) {
if ( b . real < 0 ) {
double denom = a . real * a . real + a . imag * a . imag ;
a . real = a . real / denom ;
a . imag = - a . imag / denom ;
b . real = - b . real ;
}
switch ( ( int ) b . real ) {
case 0 :
z . real = 1 ;
z . imag = 0 ;
return z ;
case 1 :
return a ;
case 2 :
z = __Pyx_c_prod ( a , a ) ;
return __Pyx_c_prod ( a , a ) ;
case 3 :
z = __Pyx_c_prod ( a , a ) ;
return __Pyx_c_prod ( z , a ) ;
case 4 :
z = __Pyx_c_prod ( a , a ) ;
return __Pyx_c_prod ( z , z ) ;
}
}
if ( a . imag = = 0 ) {
if ( a . real = = 0 ) {
return a ;
}
r = a . real ;
theta = 0 ;
} else {
r = __Pyx_c_abs ( a ) ;
theta = atan2 ( a . imag , a . real ) ;
}
lnr = log ( r ) ;
z_r = exp ( lnr * b . real - theta * b . imag ) ;
z_theta = theta * b . real + lnr * b . imag ;
z . real = z_r * cos ( z_theta ) ;
z . imag = z_r * sin ( z_theta ) ;
return z ;
}
# endif
2010-09-15 04:02:44 +08:00
# endif
static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar ( PyObject * x ) {
const unsigned char neg_one = ( unsigned char ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( unsigned char ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( unsigned char ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
2010-09-06 22:15:53 +08:00
PyErr_SetString ( PyExc_OverflowError ,
2010-09-15 04:02:44 +08:00
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to unsigned char " :
" value too large to convert to unsigned char " ) ;
2010-09-06 22:15:53 +08:00
}
return ( unsigned char ) - 1 ;
}
return ( unsigned char ) val ;
}
return ( unsigned char ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort ( PyObject * x ) {
const unsigned short neg_one = ( unsigned short ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( unsigned short ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( unsigned short ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
2010-09-06 22:15:53 +08:00
PyErr_SetString ( PyExc_OverflowError ,
2010-09-15 04:02:44 +08:00
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to unsigned short " :
" value too large to convert to unsigned short " ) ;
2010-09-06 22:15:53 +08:00
}
return ( unsigned short ) - 1 ;
}
return ( unsigned short ) val ;
}
return ( unsigned short ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt ( PyObject * x ) {
const unsigned int neg_one = ( unsigned int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( unsigned int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( unsigned int ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
2010-09-06 22:15:53 +08:00
PyErr_SetString ( PyExc_OverflowError ,
2010-09-15 04:02:44 +08:00
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to unsigned int " :
" value too large to convert to unsigned int " ) ;
2010-09-06 22:15:53 +08:00
}
return ( unsigned int ) - 1 ;
}
return ( unsigned int ) val ;
}
return ( unsigned int ) __Pyx_PyInt_AsUnsignedLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE char __Pyx_PyInt_AsChar ( PyObject * x ) {
const char neg_one = ( char ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( char ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( char ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to char " :
" value too large to convert to char " ) ;
}
2010-09-06 22:15:53 +08:00
return ( char ) - 1 ;
}
return ( char ) val ;
}
return ( char ) __Pyx_PyInt_AsLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE short __Pyx_PyInt_AsShort ( PyObject * x ) {
const short neg_one = ( short ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( short ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( short ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to short " :
" value too large to convert to short " ) ;
}
2010-09-06 22:15:53 +08:00
return ( short ) - 1 ;
}
return ( short ) val ;
}
return ( short ) __Pyx_PyInt_AsLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE int __Pyx_PyInt_AsInt ( PyObject * x ) {
const int neg_one = ( int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( int ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to int " :
" value too large to convert to int " ) ;
}
2010-09-06 22:15:53 +08:00
return ( int ) - 1 ;
}
return ( int ) val ;
}
return ( int ) __Pyx_PyInt_AsLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar ( PyObject * x ) {
const signed char neg_one = ( signed char ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( signed char ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( signed char ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to signed char " :
" value too large to convert to signed char " ) ;
}
2010-09-06 22:15:53 +08:00
return ( signed char ) - 1 ;
}
return ( signed char ) val ;
}
return ( signed char ) __Pyx_PyInt_AsSignedLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort ( PyObject * x ) {
const signed short neg_one = ( signed short ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( signed short ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( signed short ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to signed short " :
" value too large to convert to signed short " ) ;
}
2010-09-06 22:15:53 +08:00
return ( signed short ) - 1 ;
}
return ( signed short ) val ;
}
return ( signed short ) __Pyx_PyInt_AsSignedLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt ( PyObject * x ) {
const signed int neg_one = ( signed int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
if ( sizeof ( signed int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( signed int ) val ) ) {
2010-09-15 04:02:44 +08:00
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to signed int " :
" value too large to convert to signed int " ) ;
}
2010-09-06 22:15:53 +08:00
return ( signed int ) - 1 ;
}
return ( signed int ) val ;
}
return ( signed int ) __Pyx_PyInt_AsSignedLong ( x ) ;
}
2011-09-03 19:28:32 +08:00
static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble ( PyObject * x ) {
const int neg_one = ( int ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
if ( sizeof ( int ) < sizeof ( long ) ) {
long val = __Pyx_PyInt_AsLong ( x ) ;
if ( unlikely ( val ! = ( long ) ( int ) val ) ) {
if ( ! unlikely ( val = = - 1 & & PyErr_Occurred ( ) ) ) {
PyErr_SetString ( PyExc_OverflowError ,
( is_unsigned & & unlikely ( val < 0 ) ) ?
" can't convert negative value to int " :
" value too large to convert to int " ) ;
}
return ( int ) - 1 ;
}
return ( int ) val ;
}
return ( int ) __Pyx_PyInt_AsLong ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong ( PyObject * x ) {
const unsigned long neg_one = ( unsigned long ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x03000000
2010-09-15 04:02:44 +08:00
if ( likely ( PyInt_Check ( x ) ) ) {
2010-09-06 22:15:53 +08:00
long val = PyInt_AS_LONG ( x ) ;
2010-09-15 04:02:44 +08:00
if ( is_unsigned & & unlikely ( val < 0 ) ) {
2010-09-06 22:15:53 +08:00
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned long " ) ;
return ( unsigned long ) - 1 ;
}
return ( unsigned long ) val ;
} else
# endif
2010-09-15 04:02:44 +08:00
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned long " ) ;
return ( unsigned long ) - 1 ;
}
2011-09-03 19:28:32 +08:00
return ( unsigned long ) PyLong_AsUnsignedLong ( x ) ;
2010-09-15 04:02:44 +08:00
} else {
2011-09-03 19:28:32 +08:00
return ( unsigned long ) PyLong_AsLong ( x ) ;
2010-09-06 22:15:53 +08:00
}
} else {
unsigned long val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( unsigned long ) - 1 ;
val = __Pyx_PyInt_AsUnsignedLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong ( PyObject * x ) {
const unsigned PY_LONG_LONG neg_one = ( unsigned PY_LONG_LONG ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x03000000
2010-09-15 04:02:44 +08:00
if ( likely ( PyInt_Check ( x ) ) ) {
2010-09-06 22:15:53 +08:00
long val = PyInt_AS_LONG ( x ) ;
2010-09-15 04:02:44 +08:00
if ( is_unsigned & & unlikely ( val < 0 ) ) {
2010-09-06 22:15:53 +08:00
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned PY_LONG_LONG " ) ;
return ( unsigned PY_LONG_LONG ) - 1 ;
}
return ( unsigned PY_LONG_LONG ) val ;
} else
# endif
2010-09-15 04:02:44 +08:00
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to unsigned PY_LONG_LONG " ) ;
return ( unsigned PY_LONG_LONG ) - 1 ;
}
2011-09-03 19:28:32 +08:00
return ( unsigned PY_LONG_LONG ) PyLong_AsUnsignedLongLong ( x ) ;
2010-09-15 04:02:44 +08:00
} else {
2011-09-03 19:28:32 +08:00
return ( unsigned PY_LONG_LONG ) PyLong_AsLongLong ( x ) ;
2010-09-06 22:15:53 +08:00
}
} else {
unsigned PY_LONG_LONG val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( unsigned PY_LONG_LONG ) - 1 ;
val = __Pyx_PyInt_AsUnsignedLongLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE long __Pyx_PyInt_AsLong ( PyObject * x ) {
const long neg_one = ( long ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x03000000
2010-09-15 04:02:44 +08:00
if ( likely ( PyInt_Check ( x ) ) ) {
2010-09-06 22:15:53 +08:00
long val = PyInt_AS_LONG ( x ) ;
2010-09-15 04:02:44 +08:00
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to long " ) ;
return ( long ) - 1 ;
}
2010-09-06 22:15:53 +08:00
return ( long ) val ;
} else
# endif
2010-09-15 04:02:44 +08:00
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to long " ) ;
return ( long ) - 1 ;
}
2011-09-03 19:28:32 +08:00
return ( long ) PyLong_AsUnsignedLong ( x ) ;
2010-09-15 04:02:44 +08:00
} else {
2011-09-03 19:28:32 +08:00
return ( long ) PyLong_AsLong ( x ) ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
} else {
long val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( long ) - 1 ;
val = __Pyx_PyInt_AsLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong ( PyObject * x ) {
const PY_LONG_LONG neg_one = ( PY_LONG_LONG ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x03000000
2010-09-15 04:02:44 +08:00
if ( likely ( PyInt_Check ( x ) ) ) {
2010-09-06 22:15:53 +08:00
long val = PyInt_AS_LONG ( x ) ;
2010-09-15 04:02:44 +08:00
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to PY_LONG_LONG " ) ;
return ( PY_LONG_LONG ) - 1 ;
}
2010-09-06 22:15:53 +08:00
return ( PY_LONG_LONG ) val ;
} else
# endif
2010-09-15 04:02:44 +08:00
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to PY_LONG_LONG " ) ;
return ( PY_LONG_LONG ) - 1 ;
}
2011-09-03 19:28:32 +08:00
return ( PY_LONG_LONG ) PyLong_AsUnsignedLongLong ( x ) ;
2010-09-15 04:02:44 +08:00
} else {
2011-09-03 19:28:32 +08:00
return ( PY_LONG_LONG ) PyLong_AsLongLong ( x ) ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
} else {
PY_LONG_LONG val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( PY_LONG_LONG ) - 1 ;
val = __Pyx_PyInt_AsLongLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong ( PyObject * x ) {
const signed long neg_one = ( signed long ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x03000000
2010-09-15 04:02:44 +08:00
if ( likely ( PyInt_Check ( x ) ) ) {
2010-09-06 22:15:53 +08:00
long val = PyInt_AS_LONG ( x ) ;
2010-09-15 04:02:44 +08:00
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed long " ) ;
return ( signed long ) - 1 ;
}
2010-09-06 22:15:53 +08:00
return ( signed long ) val ;
} else
# endif
2010-09-15 04:02:44 +08:00
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed long " ) ;
return ( signed long ) - 1 ;
}
2011-09-03 19:28:32 +08:00
return ( signed long ) PyLong_AsUnsignedLong ( x ) ;
2010-09-15 04:02:44 +08:00
} else {
2011-09-03 19:28:32 +08:00
return ( signed long ) PyLong_AsLong ( x ) ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
} else {
signed long val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( signed long ) - 1 ;
val = __Pyx_PyInt_AsSignedLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong ( PyObject * x ) {
const signed PY_LONG_LONG neg_one = ( signed PY_LONG_LONG ) - 1 , const_zero = 0 ;
const int is_unsigned = neg_one > const_zero ;
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x03000000
2010-09-15 04:02:44 +08:00
if ( likely ( PyInt_Check ( x ) ) ) {
2010-09-06 22:15:53 +08:00
long val = PyInt_AS_LONG ( x ) ;
2010-09-15 04:02:44 +08:00
if ( is_unsigned & & unlikely ( val < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed PY_LONG_LONG " ) ;
return ( signed PY_LONG_LONG ) - 1 ;
}
2010-09-06 22:15:53 +08:00
return ( signed PY_LONG_LONG ) val ;
} else
# endif
2010-09-15 04:02:44 +08:00
if ( likely ( PyLong_Check ( x ) ) ) {
if ( is_unsigned ) {
if ( unlikely ( Py_SIZE ( x ) < 0 ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" can't convert negative value to signed PY_LONG_LONG " ) ;
return ( signed PY_LONG_LONG ) - 1 ;
}
2011-09-03 19:28:32 +08:00
return ( signed PY_LONG_LONG ) PyLong_AsUnsignedLongLong ( x ) ;
2010-09-15 04:02:44 +08:00
} else {
2011-09-03 19:28:32 +08:00
return ( signed PY_LONG_LONG ) PyLong_AsLongLong ( x ) ;
2010-09-15 04:02:44 +08:00
}
2010-09-06 22:15:53 +08:00
} else {
signed PY_LONG_LONG val ;
PyObject * tmp = __Pyx_PyNumber_Int ( x ) ;
if ( ! tmp ) return ( signed PY_LONG_LONG ) - 1 ;
val = __Pyx_PyInt_AsSignedLongLong ( tmp ) ;
Py_DECREF ( tmp ) ;
return val ;
}
}
2011-09-03 19:28:32 +08:00
static int __Pyx_check_binary_version ( void ) {
char ctversion [ 4 ] , rtversion [ 4 ] ;
PyOS_snprintf ( ctversion , 4 , " %d.%d " , PY_MAJOR_VERSION , PY_MINOR_VERSION ) ;
PyOS_snprintf ( rtversion , 4 , " %s " , Py_GetVersion ( ) ) ;
if ( ctversion [ 0 ] ! = rtversion [ 0 ] | | ctversion [ 2 ] ! = rtversion [ 2 ] ) {
char message [ 200 ] ;
PyOS_snprintf ( message , sizeof ( message ) ,
" compiletime version %s of module '%.100s' "
" does not match runtime version %s " ,
ctversion , __Pyx_MODULE_NAME , rtversion ) ;
# if PY_VERSION_HEX < 0x02050000
return PyErr_Warn ( NULL , message ) ;
# else
return PyErr_WarnEx ( NULL , message , 1 ) ;
# endif
}
return 0 ;
}
2010-09-06 22:15:53 +08:00
# ifndef __PYX_HAVE_RT_ImportType
# define __PYX_HAVE_RT_ImportType
static PyTypeObject * __Pyx_ImportType ( const char * module_name , const char * class_name ,
2011-09-03 19:28:32 +08:00
size_t size , int strict )
2010-09-06 22:15:53 +08:00
{
PyObject * py_module = 0 ;
PyObject * result = 0 ;
PyObject * py_name = 0 ;
2010-09-15 04:02:44 +08:00
char warning [ 200 ] ;
2010-09-06 22:15:53 +08:00
py_module = __Pyx_ImportModule ( module_name ) ;
if ( ! py_module )
goto bad ;
# if PY_MAJOR_VERSION < 3
py_name = PyString_FromString ( class_name ) ;
# else
py_name = PyUnicode_FromString ( class_name ) ;
# endif
if ( ! py_name )
goto bad ;
result = PyObject_GetAttr ( py_module , py_name ) ;
Py_DECREF ( py_name ) ;
py_name = 0 ;
Py_DECREF ( py_module ) ;
py_module = 0 ;
if ( ! result )
goto bad ;
if ( ! PyType_Check ( result ) ) {
2011-09-03 19:28:32 +08:00
PyErr_Format ( PyExc_TypeError ,
2010-09-06 22:15:53 +08:00
" %s.%s is not a type object " ,
module_name , class_name ) ;
goto bad ;
}
2011-09-03 19:28:32 +08:00
if ( ! strict & & ( ( PyTypeObject * ) result ) - > tp_basicsize > ( Py_ssize_t ) size ) {
PyOS_snprintf ( warning , sizeof ( warning ) ,
2010-09-15 04:02:44 +08:00
" %s.%s size changed, may indicate binary incompatibility " ,
module_name , class_name ) ;
2011-09-03 19:28:32 +08:00
# if PY_VERSION_HEX < 0x02050000
if ( PyErr_Warn ( NULL , warning ) < 0 ) goto bad ;
# else
if ( PyErr_WarnEx ( NULL , warning , 0 ) < 0 ) goto bad ;
# endif
2010-09-15 04:02:44 +08:00
}
2011-09-03 19:28:32 +08:00
else if ( ( ( PyTypeObject * ) result ) - > tp_basicsize ! = ( Py_ssize_t ) size ) {
PyErr_Format ( PyExc_ValueError ,
2010-09-15 04:02:44 +08:00
" %s.%s has the wrong size, try recompiling " ,
2010-09-06 22:15:53 +08:00
module_name , class_name ) ;
goto bad ;
}
return ( PyTypeObject * ) result ;
bad :
Py_XDECREF ( py_module ) ;
Py_XDECREF ( result ) ;
2011-09-03 19:28:32 +08:00
return NULL ;
2010-09-06 22:15:53 +08:00
}
# endif
# ifndef __PYX_HAVE_RT_ImportModule
# define __PYX_HAVE_RT_ImportModule
static PyObject * __Pyx_ImportModule ( const char * name ) {
PyObject * py_name = 0 ;
PyObject * py_module = 0 ;
# if PY_MAJOR_VERSION < 3
py_name = PyString_FromString ( name ) ;
# else
py_name = PyUnicode_FromString ( name ) ;
# endif
if ( ! py_name )
goto bad ;
py_module = PyImport_Import ( py_name ) ;
Py_DECREF ( py_name ) ;
return py_module ;
bad :
Py_XDECREF ( py_name ) ;
return 0 ;
}
# endif
# include "compile.h"
# include "frameobject.h"
# include "traceback.h"
2011-09-03 19:28:32 +08:00
static void __Pyx_AddTraceback ( const char * funcname , int __pyx_clineno ,
int __pyx_lineno , const char * __pyx_filename ) {
2010-09-06 22:15:53 +08:00
PyObject * py_srcfile = 0 ;
PyObject * py_funcname = 0 ;
PyObject * py_globals = 0 ;
PyCodeObject * py_code = 0 ;
PyFrameObject * py_frame = 0 ;
# if PY_MAJOR_VERSION < 3
py_srcfile = PyString_FromString ( __pyx_filename ) ;
# else
py_srcfile = PyUnicode_FromString ( __pyx_filename ) ;
# endif
if ( ! py_srcfile ) goto bad ;
if ( __pyx_clineno ) {
# if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , __pyx_clineno ) ;
# else
py_funcname = PyUnicode_FromFormat ( " %s (%s:%d) " , funcname , __pyx_cfilenm , __pyx_clineno ) ;
# endif
}
else {
# if PY_MAJOR_VERSION < 3
py_funcname = PyString_FromString ( funcname ) ;
# else
py_funcname = PyUnicode_FromString ( funcname ) ;
# endif
}
if ( ! py_funcname ) goto bad ;
py_globals = PyModule_GetDict ( __pyx_m ) ;
if ( ! py_globals ) goto bad ;
py_code = PyCode_New (
0 , /*int argcount,*/
# if PY_MAJOR_VERSION >= 3
0 , /*int kwonlyargcount,*/
# endif
0 , /*int nlocals,*/
0 , /*int stacksize,*/
0 , /*int flags,*/
2010-09-15 04:02:44 +08:00
__pyx_empty_bytes , /*PyObject *code,*/
2010-09-06 22:15:53 +08:00
__pyx_empty_tuple , /*PyObject *consts,*/
__pyx_empty_tuple , /*PyObject *names,*/
__pyx_empty_tuple , /*PyObject *varnames,*/
__pyx_empty_tuple , /*PyObject *freevars,*/
__pyx_empty_tuple , /*PyObject *cellvars,*/
py_srcfile , /*PyObject *filename,*/
py_funcname , /*PyObject *name,*/
__pyx_lineno , /*int firstlineno,*/
2010-09-15 04:02:44 +08:00
__pyx_empty_bytes /*PyObject *lnotab*/
2010-09-06 22:15:53 +08:00
) ;
if ( ! py_code ) goto bad ;
py_frame = PyFrame_New (
PyThreadState_GET ( ) , /*PyThreadState *tstate,*/
py_code , /*PyCodeObject *code,*/
py_globals , /*PyObject *globals,*/
0 /*PyObject *locals*/
) ;
if ( ! py_frame ) goto bad ;
py_frame - > f_lineno = __pyx_lineno ;
PyTraceBack_Here ( py_frame ) ;
bad :
Py_XDECREF ( py_srcfile ) ;
Py_XDECREF ( py_funcname ) ;
Py_XDECREF ( py_code ) ;
Py_XDECREF ( py_frame ) ;
}
static int __Pyx_InitStrings ( __Pyx_StringTabEntry * t ) {
while ( t - > p ) {
# if PY_MAJOR_VERSION < 3
2010-09-15 04:02:44 +08:00
if ( t - > is_unicode ) {
2010-09-06 22:15:53 +08:00
* t - > p = PyUnicode_DecodeUTF8 ( t - > s , t - > n - 1 , NULL ) ;
} else if ( t - > intern ) {
* t - > p = PyString_InternFromString ( t - > s ) ;
} else {
* t - > p = PyString_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
# else /* Python 3+ has unicode identifiers */
2010-09-15 04:02:44 +08:00
if ( t - > is_unicode | t - > is_str ) {
if ( t - > intern ) {
* t - > p = PyUnicode_InternFromString ( t - > s ) ;
} else if ( t - > encoding ) {
* t - > p = PyUnicode_Decode ( t - > s , t - > n - 1 , t - > encoding , NULL ) ;
} else {
* t - > p = PyUnicode_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
2010-09-06 22:15:53 +08:00
} else {
* t - > p = PyBytes_FromStringAndSize ( t - > s , t - > n - 1 ) ;
}
# endif
if ( ! * t - > p )
return - 1 ;
+ + t ;
}
return 0 ;
}
/* Type Conversion Functions */
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE int __Pyx_PyObject_IsTrue ( PyObject * x ) {
2011-09-03 19:28:32 +08:00
int is_true = x = = Py_True ;
if ( is_true | ( x = = Py_False ) | ( x = = Py_None ) ) return is_true ;
2010-09-06 22:15:53 +08:00
else return PyObject_IsTrue ( x ) ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE PyObject * __Pyx_PyNumber_Int ( PyObject * x ) {
2010-09-06 22:15:53 +08:00
PyNumberMethods * m ;
const char * name = NULL ;
PyObject * res = NULL ;
# if PY_VERSION_HEX < 0x03000000
if ( PyInt_Check ( x ) | | PyLong_Check ( x ) )
# else
if ( PyLong_Check ( x ) )
# endif
return Py_INCREF ( x ) , x ;
m = Py_TYPE ( x ) - > tp_as_number ;
# if PY_VERSION_HEX < 0x03000000
if ( m & & m - > nb_int ) {
name = " int " ;
res = PyNumber_Int ( x ) ;
}
else if ( m & & m - > nb_long ) {
name = " long " ;
res = PyNumber_Long ( x ) ;
}
# else
if ( m & & m - > nb_int ) {
name = " int " ;
res = PyNumber_Long ( x ) ;
}
# endif
if ( res ) {
# if PY_VERSION_HEX < 0x03000000
if ( ! PyInt_Check ( res ) & & ! PyLong_Check ( res ) ) {
# else
if ( ! PyLong_Check ( res ) ) {
# endif
PyErr_Format ( PyExc_TypeError ,
" __%s__ returned non-%s (type %.200s) " ,
name , name , Py_TYPE ( res ) - > tp_name ) ;
Py_DECREF ( res ) ;
return NULL ;
}
}
else if ( ! PyErr_Occurred ( ) ) {
PyErr_SetString ( PyExc_TypeError ,
" an integer is required " ) ;
}
return res ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t ( PyObject * b ) {
2010-09-06 22:15:53 +08:00
Py_ssize_t ival ;
PyObject * x = PyNumber_Index ( b ) ;
if ( ! x ) return - 1 ;
ival = PyInt_AsSsize_t ( x ) ;
Py_DECREF ( x ) ;
return ival ;
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t ( size_t ival ) {
2010-09-06 22:15:53 +08:00
# if PY_VERSION_HEX < 0x02050000
if ( ival < = LONG_MAX )
return PyInt_FromLong ( ( long ) ival ) ;
else {
unsigned char * bytes = ( unsigned char * ) & ival ;
int one = 1 ; int little = ( int ) * ( unsigned char * ) & one ;
return _PyLong_FromByteArray ( bytes , sizeof ( size_t ) , little , 0 ) ;
}
# else
return PyInt_FromSize_t ( ival ) ;
# endif
}
2010-09-15 04:02:44 +08:00
static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t ( PyObject * x ) {
2010-09-06 22:15:53 +08:00
unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong ( x ) ;
if ( unlikely ( val = = ( unsigned PY_LONG_LONG ) - 1 & & PyErr_Occurred ( ) ) ) {
return ( size_t ) - 1 ;
} else if ( unlikely ( val ! = ( unsigned PY_LONG_LONG ) ( size_t ) val ) ) {
PyErr_SetString ( PyExc_OverflowError ,
" value too large to convert to size_t " ) ;
return ( size_t ) - 1 ;
}
return ( size_t ) val ;
}
2010-09-15 04:02:44 +08:00
# endif /* Py_PYTHON_H */