/* Generated by Cython 0.29.21 */

#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.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.6+ or Python 3.3+.
#else
#define CYTHON_ABI "0_29_21"
#define CYTHON_HEX_VERSION 0x001D15F0
#define CYTHON_FUTURE_DIVISION 1
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #if PY_VERSION_HEX >= 0x02070000
    #define HAVE_LONG_LONG
  #endif
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#elif defined(PYSTON_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 0
  #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
  #endif
  #ifndef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
           typedef unsigned char     uint8_t;
           typedef unsigned int      uint32_t;
        #else
           typedef unsigned __int8   uint8_t;
           typedef unsigned __int32  uint32_t;
        #endif
    #endif
#else
   #include <stdint.h>
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus) && __cplusplus >= 201103L
    #if __has_cpp_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH [[fallthrough]]
    #elif __has_cpp_attribute(clang::fallthrough)
      #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
    #elif __has_cpp_attribute(gnu::fallthrough)
      #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__ ) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif

#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #elif defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif

#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
  #define __Pyx_DefaultClassType PyType_Type
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
#endif
#if CYTHON_FAST_PYCCALL
#define __Pyx_PyFastCFunction_Check(func)\
    ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
#else
#define __Pyx_PyFastCFunction_Check(func) 0
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
  #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
  #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
  #define PyMem_RawFree(p)             PyMem_Free(p)
#endif
#if CYTHON_COMPILING_IN_PYSTON
  #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
#else
#define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
  #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
  #else
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
  #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
  #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
  #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#ifndef PyObject_Unicode
  #define PyObject_Unicode             PyObject_Str
#endif
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#if PY_VERSION_HEX >= 0x030900A4
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
#else
  #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
  #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
#else
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   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
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
  #define _USE_MATH_DEFINES
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif

#define __PYX_MARK_ERR_POS(f_index, lineno) \
    { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
#define __PYX_ERR(f_index, lineno, Ln_error) \
    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__scipy__special__cython_special
#define __PYX_HAVE_API__scipy__special__cython_special
/* Early includes */
#include <string.h>
#include <stdio.h>
#include "numpy/arrayobject.h"
#include "numpy/ufuncobject.h"

    /* NumPy API declarations from "numpy/__init__.pxd" */
    
#include "numpy/npy_math.h"
#include "sf_error.h"
#include <math.h>
#include "_complexstuff.h"
#include "amos_wrappers.h"
#include "cephes.h"
#include "_c99compat.h"
#include "_ufuncs_defs.h"
#include <stdlib.h>
#include "lapack_defs.h"
#include "specfun_wrappers.h"
#include "cephes/dd_real.h"
#include "float.h"
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

static PyObject *__pyx_m = NULL;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_cython_runtime = NULL;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static PyObject *__pyx_empty_unicode;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;

/* Header.proto */
#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
#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


static const char *__pyx_f[] = {
  "_cython_special_custom.pxi",
  "cython_special.pyx",
  "__init__.pxd",
  "sph_harm.pxd",
  "_legacy.pxd",
  "_boxcox.pxd",
  "_convex_analysis.pxd",
  "_cunity.pxd",
  "_exprel.pxd",
  "_hyp0f1.pxd",
  "type.pxd",
  "_cython_special.pxi",
};
/* ForceInitThreads.proto */
#ifndef __PYX_FORCE_INIT_THREADS
  #define __PYX_FORCE_INIT_THREADS 0
#endif

/* NoFastGil.proto */
#define __Pyx_PyGILState_Ensure PyGILState_Ensure
#define __Pyx_PyGILState_Release PyGILState_Release
#define __Pyx_FastGIL_Remember()
#define __Pyx_FastGIL_Forget()
#define __Pyx_FastGilFuncInit()


/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":697
 * # 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
 */
typedef npy_int8 __pyx_t_5numpy_int8_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":698
 * 
 * ctypedef npy_int8       int8_t
 * ctypedef npy_int16      int16_t             # <<<<<<<<<<<<<<
 * ctypedef npy_int32      int32_t
 * ctypedef npy_int64      int64_t
 */
typedef npy_int16 __pyx_t_5numpy_int16_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":699
 * 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
 */
typedef npy_int32 __pyx_t_5numpy_int32_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":700
 * 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
 */
typedef npy_int64 __pyx_t_5numpy_int64_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":704
 * #ctypedef npy_int128     int128_t
 * 
 * ctypedef npy_uint8      uint8_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint16     uint16_t
 * ctypedef npy_uint32     uint32_t
 */
typedef npy_uint8 __pyx_t_5numpy_uint8_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":705
 * 
 * ctypedef npy_uint8      uint8_t
 * ctypedef npy_uint16     uint16_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uint32     uint32_t
 * ctypedef npy_uint64     uint64_t
 */
typedef npy_uint16 __pyx_t_5numpy_uint16_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":706
 * 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
 */
typedef npy_uint32 __pyx_t_5numpy_uint32_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":707
 * 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
 */
typedef npy_uint64 __pyx_t_5numpy_uint64_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":711
 * #ctypedef npy_uint128    uint128_t
 * 
 * ctypedef npy_float32    float32_t             # <<<<<<<<<<<<<<
 * ctypedef npy_float64    float64_t
 * #ctypedef npy_float80    float80_t
 */
typedef npy_float32 __pyx_t_5numpy_float32_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":712
 * 
 * ctypedef npy_float32    float32_t
 * ctypedef npy_float64    float64_t             # <<<<<<<<<<<<<<
 * #ctypedef npy_float80    float80_t
 * #ctypedef npy_float128   float128_t
 */
typedef npy_float64 __pyx_t_5numpy_float64_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":721
 * # 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
 */
typedef npy_long __pyx_t_5numpy_int_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":722
 * # 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
 * 
 */
typedef npy_longlong __pyx_t_5numpy_long_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":723
 * 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;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":725
 * ctypedef npy_longlong   longlong_t
 * 
 * ctypedef npy_ulong      uint_t             # <<<<<<<<<<<<<<
 * ctypedef npy_ulonglong  ulong_t
 * ctypedef npy_ulonglong  ulonglong_t
 */
typedef npy_ulong __pyx_t_5numpy_uint_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":726
 * 
 * ctypedef npy_ulong      uint_t
 * ctypedef npy_ulonglong  ulong_t             # <<<<<<<<<<<<<<
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 */
typedef npy_ulonglong __pyx_t_5numpy_ulong_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":727
 * 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;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":729
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uintp      uintp_t
 * 
 */
typedef npy_intp __pyx_t_5numpy_intp_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":730
 * 
 * ctypedef npy_intp       intp_t
 * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_double     float_t
 */
typedef npy_uintp __pyx_t_5numpy_uintp_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":732
 * ctypedef npy_uintp      uintp_t
 * 
 * ctypedef npy_double     float_t             # <<<<<<<<<<<<<<
 * ctypedef npy_double     double_t
 * ctypedef npy_longdouble longdouble_t
 */
typedef npy_double __pyx_t_5numpy_float_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":733
 * 
 * ctypedef npy_double     float_t
 * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
 * ctypedef npy_longdouble longdouble_t
 * 
 */
typedef npy_double __pyx_t_5numpy_double_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":734
 * ctypedef npy_double     float_t
 * ctypedef npy_double     double_t
 * ctypedef npy_longdouble longdouble_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_cfloat      cfloat_t
 */
typedef npy_longdouble __pyx_t_5numpy_longdouble_t;

/* "_cython_special.pxi":28
 * from scipy.special import _ufuncs
 * 
 * ctypedef long double long_double             # <<<<<<<<<<<<<<
 * ctypedef float complex float_complex
 * ctypedef double complex double_complex
 */
typedef long double __pyx_t_5scipy_7special_14cython_special_long_double;
/* Declarations.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    typedef ::std::complex< double > __pyx_t_double_complex;
  #else
    typedef double _Complex __pyx_t_double_complex;
  #endif
#else
    typedef struct { double real, imag; } __pyx_t_double_complex;
#endif
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);

/* Declarations.proto */
#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
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);

/* Declarations.proto */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    typedef ::std::complex< long double > __pyx_t_long_double_complex;
  #else
    typedef long double _Complex __pyx_t_long_double_complex;
  #endif
#else
    typedef struct { long double real, imag; } __pyx_t_long_double_complex;
#endif
static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);


/*--- Type declarations ---*/

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":736
 * ctypedef npy_longdouble longdouble_t
 * 
 * ctypedef npy_cfloat      cfloat_t             # <<<<<<<<<<<<<<
 * ctypedef npy_cdouble     cdouble_t
 * ctypedef npy_clongdouble clongdouble_t
 */
typedef npy_cfloat __pyx_t_5numpy_cfloat_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":737
 * 
 * ctypedef npy_cfloat      cfloat_t
 * ctypedef npy_cdouble     cdouble_t             # <<<<<<<<<<<<<<
 * ctypedef npy_clongdouble clongdouble_t
 * 
 */
typedef npy_cdouble __pyx_t_5numpy_cdouble_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":738
 * ctypedef npy_cfloat      cfloat_t
 * ctypedef npy_cdouble     cdouble_t
 * ctypedef npy_clongdouble clongdouble_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_cdouble     complex_t
 */
typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":740
 * ctypedef npy_clongdouble clongdouble_t
 * 
 * ctypedef npy_cdouble     complex_t             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew1(a):
 */
typedef npy_cdouble __pyx_t_5numpy_complex_t;
union __pyx_t_5scipy_7special_13_complexstuff__complex_pun;
typedef union __pyx_t_5scipy_7special_13_complexstuff__complex_pun __pyx_t_5scipy_7special_13_complexstuff__complex_pun;

/* "_complexstuff.pxd":35
 *     double_complex
 * 
 * ctypedef union _complex_pun:             # <<<<<<<<<<<<<<
 *     np.npy_cdouble npy
 *     double_complex c99
 */
union __pyx_t_5scipy_7special_13_complexstuff__complex_pun {
  npy_cdouble npy;
  __pyx_t_double_complex c99;
};
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn;
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn;
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn;
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn;
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_in;
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_in;
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn;
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn;

/* "scipy/special/cython_special.pyx":1042
 * 
 * from ._agm cimport agm as _func_agm
 * ctypedef double _proto_agm_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_agm_t *_proto_agm_t_var = &_func_agm
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_agm_t(double, double);

/* "scipy/special/cython_special.pyx":1053
 *     cdef npy_int _func_cairy_wrap_e_real "cairy_wrap_e_real"(npy_double, npy_double *, npy_double *, npy_double *, npy_double *)nogil
 * from ._legacy cimport bdtr_unsafe as _func_bdtr_unsafe
 * ctypedef double _proto_bdtr_unsafe_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_bdtr_unsafe_t *_proto_bdtr_unsafe_t_var = &_func_bdtr_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_bdtr_unsafe_t(double, double, double);

/* "scipy/special/cython_special.pyx":1058
 *     cdef npy_double _func_bdtr "bdtr"(npy_double, npy_int, npy_double)nogil
 * from ._legacy cimport bdtrc_unsafe as _func_bdtrc_unsafe
 * ctypedef double _proto_bdtrc_unsafe_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_bdtrc_unsafe_t *_proto_bdtrc_unsafe_t_var = &_func_bdtrc_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_bdtrc_unsafe_t(double, double, double);

/* "scipy/special/cython_special.pyx":1063
 *     cdef npy_double _func_bdtrc "bdtrc"(npy_double, npy_int, npy_double)nogil
 * from ._legacy cimport bdtri_unsafe as _func_bdtri_unsafe
 * ctypedef double _proto_bdtri_unsafe_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_bdtri_unsafe_t *_proto_bdtri_unsafe_t_var = &_func_bdtri_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_bdtri_unsafe_t(double, double, double);

/* "scipy/special/cython_special.pyx":1090
 *     cdef npy_double _func_lbeta "lbeta"(npy_double, npy_double)nogil
 * from .orthogonal_eval cimport binom as _func_binom
 * ctypedef double _proto_binom_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_binom_t *_proto_binom_t_var = &_func_binom
 * from ._boxcox cimport boxcox as _func_boxcox
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_binom_t(double, double);

/* "scipy/special/cython_special.pyx":1093
 * cdef _proto_binom_t *_proto_binom_t_var = &_func_binom
 * from ._boxcox cimport boxcox as _func_boxcox
 * ctypedef double _proto_boxcox_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_boxcox_t *_proto_boxcox_t_var = &_func_boxcox
 * from ._boxcox cimport boxcox1p as _func_boxcox1p
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_boxcox_t(double, double);

/* "scipy/special/cython_special.pyx":1096
 * cdef _proto_boxcox_t *_proto_boxcox_t_var = &_func_boxcox
 * from ._boxcox cimport boxcox1p as _func_boxcox1p
 * ctypedef double _proto_boxcox1p_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_boxcox1p_t *_proto_boxcox1p_t_var = &_func_boxcox1p
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_boxcox1p_t(double, double);

/* "scipy/special/cython_special.pyx":1141
 *     cdef npy_double _func_ellpk "ellpk"(npy_double)nogil
 * from ._ellipk cimport ellipk as _func_ellipk
 * ctypedef double _proto_ellipk_t(double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_ellipk_t *_proto_ellipk_t_var = &_func_ellipk
 * from ._convex_analysis cimport entr as _func_entr
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_ellipk_t(double);

/* "scipy/special/cython_special.pyx":1144
 * cdef _proto_ellipk_t *_proto_ellipk_t_var = &_func_ellipk
 * from ._convex_analysis cimport entr as _func_entr
 * ctypedef double _proto_entr_t(double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_entr_t *_proto_entr_t_var = &_func_entr
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_entr_t(double);

/* "scipy/special/cython_special.pyx":1155
 *     cdef npy_double _func_erfcinv "erfcinv"(npy_double)nogil
 * from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
 * ctypedef double complex _proto_eval_chebyc_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyc_double_complex__t *_proto_eval_chebyc_double_complex__t_var = &_func_eval_chebyc[double_complex]
 * from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyc_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1158
 * cdef _proto_eval_chebyc_double_complex__t *_proto_eval_chebyc_double_complex__t_var = &_func_eval_chebyc[double_complex]
 * from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
 * ctypedef double _proto_eval_chebyc_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyc_double__t *_proto_eval_chebyc_double__t_var = &_func_eval_chebyc[double]
 * from .orthogonal_eval cimport eval_chebyc_l as _func_eval_chebyc_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyc_double__t(double, double);

/* "scipy/special/cython_special.pyx":1161
 * cdef _proto_eval_chebyc_double__t *_proto_eval_chebyc_double__t_var = &_func_eval_chebyc[double]
 * from .orthogonal_eval cimport eval_chebyc_l as _func_eval_chebyc_l
 * ctypedef double _proto_eval_chebyc_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyc_l_t *_proto_eval_chebyc_l_t_var = &_func_eval_chebyc_l
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyc_l_t(long, double);

/* "scipy/special/cython_special.pyx":1164
 * cdef _proto_eval_chebyc_l_t *_proto_eval_chebyc_l_t_var = &_func_eval_chebyc_l
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 * ctypedef double complex _proto_eval_chebys_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebys_double_complex__t *_proto_eval_chebys_double_complex__t_var = &_func_eval_chebys[double_complex]
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_chebys_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1167
 * cdef _proto_eval_chebys_double_complex__t *_proto_eval_chebys_double_complex__t_var = &_func_eval_chebys[double_complex]
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 * ctypedef double _proto_eval_chebys_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebys_double__t *_proto_eval_chebys_double__t_var = &_func_eval_chebys[double]
 * from .orthogonal_eval cimport eval_chebys_l as _func_eval_chebys_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebys_double__t(double, double);

/* "scipy/special/cython_special.pyx":1170
 * cdef _proto_eval_chebys_double__t *_proto_eval_chebys_double__t_var = &_func_eval_chebys[double]
 * from .orthogonal_eval cimport eval_chebys_l as _func_eval_chebys_l
 * ctypedef double _proto_eval_chebys_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebys_l_t *_proto_eval_chebys_l_t_var = &_func_eval_chebys_l
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebys_l_t(long, double);

/* "scipy/special/cython_special.pyx":1173
 * cdef _proto_eval_chebys_l_t *_proto_eval_chebys_l_t_var = &_func_eval_chebys_l
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 * ctypedef double complex _proto_eval_chebyt_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyt_double_complex__t *_proto_eval_chebyt_double_complex__t_var = &_func_eval_chebyt[double_complex]
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyt_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1176
 * cdef _proto_eval_chebyt_double_complex__t *_proto_eval_chebyt_double_complex__t_var = &_func_eval_chebyt[double_complex]
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 * ctypedef double _proto_eval_chebyt_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyt_double__t *_proto_eval_chebyt_double__t_var = &_func_eval_chebyt[double]
 * from .orthogonal_eval cimport eval_chebyt_l as _func_eval_chebyt_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyt_double__t(double, double);

/* "scipy/special/cython_special.pyx":1179
 * cdef _proto_eval_chebyt_double__t *_proto_eval_chebyt_double__t_var = &_func_eval_chebyt[double]
 * from .orthogonal_eval cimport eval_chebyt_l as _func_eval_chebyt_l
 * ctypedef double _proto_eval_chebyt_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyt_l_t *_proto_eval_chebyt_l_t_var = &_func_eval_chebyt_l
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyt_l_t(long, double);

/* "scipy/special/cython_special.pyx":1182
 * cdef _proto_eval_chebyt_l_t *_proto_eval_chebyt_l_t_var = &_func_eval_chebyt_l
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 * ctypedef double complex _proto_eval_chebyu_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyu_double_complex__t *_proto_eval_chebyu_double_complex__t_var = &_func_eval_chebyu[double_complex]
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyu_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1185
 * cdef _proto_eval_chebyu_double_complex__t *_proto_eval_chebyu_double_complex__t_var = &_func_eval_chebyu[double_complex]
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 * ctypedef double _proto_eval_chebyu_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyu_double__t *_proto_eval_chebyu_double__t_var = &_func_eval_chebyu[double]
 * from .orthogonal_eval cimport eval_chebyu_l as _func_eval_chebyu_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyu_double__t(double, double);

/* "scipy/special/cython_special.pyx":1188
 * cdef _proto_eval_chebyu_double__t *_proto_eval_chebyu_double__t_var = &_func_eval_chebyu[double]
 * from .orthogonal_eval cimport eval_chebyu_l as _func_eval_chebyu_l
 * ctypedef double _proto_eval_chebyu_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_chebyu_l_t *_proto_eval_chebyu_l_t_var = &_func_eval_chebyu_l
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyu_l_t(long, double);

/* "scipy/special/cython_special.pyx":1191
 * cdef _proto_eval_chebyu_l_t *_proto_eval_chebyu_l_t_var = &_func_eval_chebyu_l
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 * ctypedef double complex _proto_eval_gegenbauer_double_complex__t(double, double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_gegenbauer_double_complex__t *_proto_eval_gegenbauer_double_complex__t_var = &_func_eval_gegenbauer[double_complex]
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_gegenbauer_double_complex__t(double, double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1194
 * cdef _proto_eval_gegenbauer_double_complex__t *_proto_eval_gegenbauer_double_complex__t_var = &_func_eval_gegenbauer[double_complex]
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 * ctypedef double _proto_eval_gegenbauer_double__t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_gegenbauer_double__t *_proto_eval_gegenbauer_double__t_var = &_func_eval_gegenbauer[double]
 * from .orthogonal_eval cimport eval_gegenbauer_l as _func_eval_gegenbauer_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_gegenbauer_double__t(double, double, double);

/* "scipy/special/cython_special.pyx":1197
 * cdef _proto_eval_gegenbauer_double__t *_proto_eval_gegenbauer_double__t_var = &_func_eval_gegenbauer[double]
 * from .orthogonal_eval cimport eval_gegenbauer_l as _func_eval_gegenbauer_l
 * ctypedef double _proto_eval_gegenbauer_l_t(long, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_gegenbauer_l_t *_proto_eval_gegenbauer_l_t_var = &_func_eval_gegenbauer_l
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_gegenbauer_l_t(long, double, double);

/* "scipy/special/cython_special.pyx":1200
 * cdef _proto_eval_gegenbauer_l_t *_proto_eval_gegenbauer_l_t_var = &_func_eval_gegenbauer_l
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 * ctypedef double complex _proto_eval_genlaguerre_double_complex__t(double, double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_genlaguerre_double_complex__t *_proto_eval_genlaguerre_double_complex__t_var = &_func_eval_genlaguerre[double_complex]
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_genlaguerre_double_complex__t(double, double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1203
 * cdef _proto_eval_genlaguerre_double_complex__t *_proto_eval_genlaguerre_double_complex__t_var = &_func_eval_genlaguerre[double_complex]
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 * ctypedef double _proto_eval_genlaguerre_double__t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_genlaguerre_double__t *_proto_eval_genlaguerre_double__t_var = &_func_eval_genlaguerre[double]
 * from .orthogonal_eval cimport eval_genlaguerre_l as _func_eval_genlaguerre_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_genlaguerre_double__t(double, double, double);

/* "scipy/special/cython_special.pyx":1206
 * cdef _proto_eval_genlaguerre_double__t *_proto_eval_genlaguerre_double__t_var = &_func_eval_genlaguerre[double]
 * from .orthogonal_eval cimport eval_genlaguerre_l as _func_eval_genlaguerre_l
 * ctypedef double _proto_eval_genlaguerre_l_t(long, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_genlaguerre_l_t *_proto_eval_genlaguerre_l_t_var = &_func_eval_genlaguerre_l
 * from .orthogonal_eval cimport eval_hermite as _func_eval_hermite
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_genlaguerre_l_t(long, double, double);

/* "scipy/special/cython_special.pyx":1209
 * cdef _proto_eval_genlaguerre_l_t *_proto_eval_genlaguerre_l_t_var = &_func_eval_genlaguerre_l
 * from .orthogonal_eval cimport eval_hermite as _func_eval_hermite
 * ctypedef double _proto_eval_hermite_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_hermite_t *_proto_eval_hermite_t_var = &_func_eval_hermite
 * from .orthogonal_eval cimport eval_hermitenorm as _func_eval_hermitenorm
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_hermite_t(long, double);

/* "scipy/special/cython_special.pyx":1212
 * cdef _proto_eval_hermite_t *_proto_eval_hermite_t_var = &_func_eval_hermite
 * from .orthogonal_eval cimport eval_hermitenorm as _func_eval_hermitenorm
 * ctypedef double _proto_eval_hermitenorm_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_hermitenorm_t *_proto_eval_hermitenorm_t_var = &_func_eval_hermitenorm
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_hermitenorm_t(long, double);

/* "scipy/special/cython_special.pyx":1215
 * cdef _proto_eval_hermitenorm_t *_proto_eval_hermitenorm_t_var = &_func_eval_hermitenorm
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 * ctypedef double complex _proto_eval_jacobi_double_complex__t(double, double, double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_jacobi_double_complex__t *_proto_eval_jacobi_double_complex__t_var = &_func_eval_jacobi[double_complex]
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_jacobi_double_complex__t(double, double, double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1218
 * cdef _proto_eval_jacobi_double_complex__t *_proto_eval_jacobi_double_complex__t_var = &_func_eval_jacobi[double_complex]
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 * ctypedef double _proto_eval_jacobi_double__t(double, double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_jacobi_double__t *_proto_eval_jacobi_double__t_var = &_func_eval_jacobi[double]
 * from .orthogonal_eval cimport eval_jacobi_l as _func_eval_jacobi_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_jacobi_double__t(double, double, double, double);

/* "scipy/special/cython_special.pyx":1221
 * cdef _proto_eval_jacobi_double__t *_proto_eval_jacobi_double__t_var = &_func_eval_jacobi[double]
 * from .orthogonal_eval cimport eval_jacobi_l as _func_eval_jacobi_l
 * ctypedef double _proto_eval_jacobi_l_t(long, double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_jacobi_l_t *_proto_eval_jacobi_l_t_var = &_func_eval_jacobi_l
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_jacobi_l_t(long, double, double, double);

/* "scipy/special/cython_special.pyx":1224
 * cdef _proto_eval_jacobi_l_t *_proto_eval_jacobi_l_t_var = &_func_eval_jacobi_l
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 * ctypedef double complex _proto_eval_laguerre_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_laguerre_double_complex__t *_proto_eval_laguerre_double_complex__t_var = &_func_eval_laguerre[double_complex]
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_laguerre_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1227
 * cdef _proto_eval_laguerre_double_complex__t *_proto_eval_laguerre_double_complex__t_var = &_func_eval_laguerre[double_complex]
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 * ctypedef double _proto_eval_laguerre_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_laguerre_double__t *_proto_eval_laguerre_double__t_var = &_func_eval_laguerre[double]
 * from .orthogonal_eval cimport eval_laguerre_l as _func_eval_laguerre_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_laguerre_double__t(double, double);

/* "scipy/special/cython_special.pyx":1230
 * cdef _proto_eval_laguerre_double__t *_proto_eval_laguerre_double__t_var = &_func_eval_laguerre[double]
 * from .orthogonal_eval cimport eval_laguerre_l as _func_eval_laguerre_l
 * ctypedef double _proto_eval_laguerre_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_laguerre_l_t *_proto_eval_laguerre_l_t_var = &_func_eval_laguerre_l
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_laguerre_l_t(long, double);

/* "scipy/special/cython_special.pyx":1233
 * cdef _proto_eval_laguerre_l_t *_proto_eval_laguerre_l_t_var = &_func_eval_laguerre_l
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 * ctypedef double complex _proto_eval_legendre_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_legendre_double_complex__t *_proto_eval_legendre_double_complex__t_var = &_func_eval_legendre[double_complex]
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_legendre_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1236
 * cdef _proto_eval_legendre_double_complex__t *_proto_eval_legendre_double_complex__t_var = &_func_eval_legendre[double_complex]
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 * ctypedef double _proto_eval_legendre_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_legendre_double__t *_proto_eval_legendre_double__t_var = &_func_eval_legendre[double]
 * from .orthogonal_eval cimport eval_legendre_l as _func_eval_legendre_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_legendre_double__t(double, double);

/* "scipy/special/cython_special.pyx":1239
 * cdef _proto_eval_legendre_double__t *_proto_eval_legendre_double__t_var = &_func_eval_legendre[double]
 * from .orthogonal_eval cimport eval_legendre_l as _func_eval_legendre_l
 * ctypedef double _proto_eval_legendre_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_legendre_l_t *_proto_eval_legendre_l_t_var = &_func_eval_legendre_l
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_legendre_l_t(long, double);

/* "scipy/special/cython_special.pyx":1242
 * cdef _proto_eval_legendre_l_t *_proto_eval_legendre_l_t_var = &_func_eval_legendre_l
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 * ctypedef double complex _proto_eval_sh_chebyt_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_chebyt_double_complex__t *_proto_eval_sh_chebyt_double_complex__t_var = &_func_eval_sh_chebyt[double_complex]
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1245
 * cdef _proto_eval_sh_chebyt_double_complex__t *_proto_eval_sh_chebyt_double_complex__t_var = &_func_eval_sh_chebyt[double_complex]
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 * ctypedef double _proto_eval_sh_chebyt_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_chebyt_double__t *_proto_eval_sh_chebyt_double__t_var = &_func_eval_sh_chebyt[double]
 * from .orthogonal_eval cimport eval_sh_chebyt_l as _func_eval_sh_chebyt_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double__t(double, double);

/* "scipy/special/cython_special.pyx":1248
 * cdef _proto_eval_sh_chebyt_double__t *_proto_eval_sh_chebyt_double__t_var = &_func_eval_sh_chebyt[double]
 * from .orthogonal_eval cimport eval_sh_chebyt_l as _func_eval_sh_chebyt_l
 * ctypedef double _proto_eval_sh_chebyt_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_chebyt_l_t *_proto_eval_sh_chebyt_l_t_var = &_func_eval_sh_chebyt_l
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyt_l_t(long, double);

/* "scipy/special/cython_special.pyx":1251
 * cdef _proto_eval_sh_chebyt_l_t *_proto_eval_sh_chebyt_l_t_var = &_func_eval_sh_chebyt_l
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 * ctypedef double complex _proto_eval_sh_chebyu_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_chebyu_double_complex__t *_proto_eval_sh_chebyu_double_complex__t_var = &_func_eval_sh_chebyu[double_complex]
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1254
 * cdef _proto_eval_sh_chebyu_double_complex__t *_proto_eval_sh_chebyu_double_complex__t_var = &_func_eval_sh_chebyu[double_complex]
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 * ctypedef double _proto_eval_sh_chebyu_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_chebyu_double__t *_proto_eval_sh_chebyu_double__t_var = &_func_eval_sh_chebyu[double]
 * from .orthogonal_eval cimport eval_sh_chebyu_l as _func_eval_sh_chebyu_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double__t(double, double);

/* "scipy/special/cython_special.pyx":1257
 * cdef _proto_eval_sh_chebyu_double__t *_proto_eval_sh_chebyu_double__t_var = &_func_eval_sh_chebyu[double]
 * from .orthogonal_eval cimport eval_sh_chebyu_l as _func_eval_sh_chebyu_l
 * ctypedef double _proto_eval_sh_chebyu_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_chebyu_l_t *_proto_eval_sh_chebyu_l_t_var = &_func_eval_sh_chebyu_l
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyu_l_t(long, double);

/* "scipy/special/cython_special.pyx":1260
 * cdef _proto_eval_sh_chebyu_l_t *_proto_eval_sh_chebyu_l_t_var = &_func_eval_sh_chebyu_l
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 * ctypedef double complex _proto_eval_sh_jacobi_double_complex__t(double, double, double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_jacobi_double_complex__t *_proto_eval_sh_jacobi_double_complex__t_var = &_func_eval_sh_jacobi[double_complex]
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double_complex__t(double, double, double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1263
 * cdef _proto_eval_sh_jacobi_double_complex__t *_proto_eval_sh_jacobi_double_complex__t_var = &_func_eval_sh_jacobi[double_complex]
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 * ctypedef double _proto_eval_sh_jacobi_double__t(double, double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_jacobi_double__t *_proto_eval_sh_jacobi_double__t_var = &_func_eval_sh_jacobi[double]
 * from .orthogonal_eval cimport eval_sh_jacobi_l as _func_eval_sh_jacobi_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double__t(double, double, double, double);

/* "scipy/special/cython_special.pyx":1266
 * cdef _proto_eval_sh_jacobi_double__t *_proto_eval_sh_jacobi_double__t_var = &_func_eval_sh_jacobi[double]
 * from .orthogonal_eval cimport eval_sh_jacobi_l as _func_eval_sh_jacobi_l
 * ctypedef double _proto_eval_sh_jacobi_l_t(long, double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_jacobi_l_t *_proto_eval_sh_jacobi_l_t_var = &_func_eval_sh_jacobi_l
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_jacobi_l_t(long, double, double, double);

/* "scipy/special/cython_special.pyx":1269
 * cdef _proto_eval_sh_jacobi_l_t *_proto_eval_sh_jacobi_l_t_var = &_func_eval_sh_jacobi_l
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 * ctypedef double complex _proto_eval_sh_legendre_double_complex__t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_legendre_double_complex__t *_proto_eval_sh_legendre_double_complex__t_var = &_func_eval_sh_legendre[double_complex]
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_legendre_double_complex__t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1272
 * cdef _proto_eval_sh_legendre_double_complex__t *_proto_eval_sh_legendre_double_complex__t_var = &_func_eval_sh_legendre[double_complex]
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 * ctypedef double _proto_eval_sh_legendre_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_legendre_double__t *_proto_eval_sh_legendre_double__t_var = &_func_eval_sh_legendre[double]
 * from .orthogonal_eval cimport eval_sh_legendre_l as _func_eval_sh_legendre_l
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_legendre_double__t(double, double);

/* "scipy/special/cython_special.pyx":1275
 * cdef _proto_eval_sh_legendre_double__t *_proto_eval_sh_legendre_double__t_var = &_func_eval_sh_legendre[double]
 * from .orthogonal_eval cimport eval_sh_legendre_l as _func_eval_sh_legendre_l
 * ctypedef double _proto_eval_sh_legendre_l_t(long, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_eval_sh_legendre_l_t *_proto_eval_sh_legendre_l_t_var = &_func_eval_sh_legendre_l
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_legendre_l_t(long, double);

/* "scipy/special/cython_special.pyx":1296
 *     cdef npy_longdouble _func_expitl "expitl"(npy_longdouble)nogil
 * from ._cunity cimport cexpm1 as _func_cexpm1
 * ctypedef double complex _proto_cexpm1_t(double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_cexpm1_t *_proto_cexpm1_t_var = &_func_cexpm1
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_cexpm1_t(__pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1301
 *     cdef npy_double _func_expm1 "expm1"(npy_double)nogil
 * from ._legacy cimport expn_unsafe as _func_expn_unsafe
 * ctypedef double _proto_expn_unsafe_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_expn_unsafe_t *_proto_expn_unsafe_t_var = &_func_expn_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_expn_unsafe_t(double, double);

/* "scipy/special/cython_special.pyx":1306
 *     cdef npy_double _func_expn "expn"(npy_int, npy_double)nogil
 * from ._exprel cimport exprel as _func_exprel
 * ctypedef double _proto_exprel_t(double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_exprel_t *_proto_exprel_t_var = &_func_exprel
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_exprel_t(double);

/* "scipy/special/cython_special.pyx":1321
 *     cdef npy_int _func_cfresnl_wrap "cfresnl_wrap"(npy_cdouble, npy_cdouble *, npy_cdouble *)nogil
 * from ._loggamma cimport cgamma as _func_cgamma
 * ctypedef double complex _proto_cgamma_t(double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_cgamma_t *_proto_cgamma_t_var = &_func_cgamma
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_cgamma_t(__pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1356
 *     cdef npy_cdouble _func_cbesh_wrap2_e "cbesh_wrap2_e"(npy_double, npy_cdouble)nogil
 * from ._convex_analysis cimport huber as _func_huber
 * ctypedef double _proto_huber_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_huber_t *_proto_huber_t_var = &_func_huber
 * from ._hyp0f1 cimport _hyp0f1_cmplx as _func__hyp0f1_cmplx
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_huber_t(double, double);

/* "scipy/special/cython_special.pyx":1359
 * cdef _proto_huber_t *_proto_huber_t_var = &_func_huber
 * from ._hyp0f1 cimport _hyp0f1_cmplx as _func__hyp0f1_cmplx
 * ctypedef double complex _proto__hyp0f1_cmplx_t(double, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto__hyp0f1_cmplx_t *_proto__hyp0f1_cmplx_t_var = &_func__hyp0f1_cmplx
 * from ._hyp0f1 cimport _hyp0f1_real as _func__hyp0f1_real
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto__hyp0f1_cmplx_t(double, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1362
 * cdef _proto__hyp0f1_cmplx_t *_proto__hyp0f1_cmplx_t_var = &_func__hyp0f1_cmplx
 * from ._hyp0f1 cimport _hyp0f1_real as _func__hyp0f1_real
 * ctypedef double _proto__hyp0f1_real_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto__hyp0f1_real_t *_proto__hyp0f1_real_t_var = &_func__hyp0f1_real
 * from ._hypergeometric cimport hyp1f1 as _func_hyp1f1
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto__hyp0f1_real_t(double, double);

/* "scipy/special/cython_special.pyx":1365
 * cdef _proto__hyp0f1_real_t *_proto__hyp0f1_real_t_var = &_func__hyp0f1_real
 * from ._hypergeometric cimport hyp1f1 as _func_hyp1f1
 * ctypedef double _proto_hyp1f1_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_hyp1f1_t *_proto_hyp1f1_t_var = &_func_hyp1f1
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_hyp1f1_t(double, double, double);

/* "scipy/special/cython_special.pyx":1374
 *     cdef npy_cdouble _func_chyp2f1_wrap "chyp2f1_wrap"(npy_double, npy_double, npy_double, npy_cdouble)nogil
 * from ._hypergeometric cimport hyperu as _func_hyperu
 * ctypedef double _proto_hyperu_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_hyperu_t *_proto_hyperu_t_var = &_func_hyperu
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_hyperu_t(double, double, double);

/* "scipy/special/cython_special.pyx":1385
 *     cdef npy_double _func_i1e "i1e"(npy_double)nogil
 * from ._boxcox cimport inv_boxcox as _func_inv_boxcox
 * ctypedef double _proto_inv_boxcox_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_inv_boxcox_t *_proto_inv_boxcox_t_var = &_func_inv_boxcox
 * from ._boxcox cimport inv_boxcox1p as _func_inv_boxcox1p
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_inv_boxcox_t(double, double);

/* "scipy/special/cython_special.pyx":1388
 * cdef _proto_inv_boxcox_t *_proto_inv_boxcox_t_var = &_func_inv_boxcox
 * from ._boxcox cimport inv_boxcox1p as _func_inv_boxcox1p
 * ctypedef double _proto_inv_boxcox1p_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_inv_boxcox1p_t *_proto_inv_boxcox1p_t_var = &_func_inv_boxcox1p
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_inv_boxcox1p_t(double, double);

/* "scipy/special/cython_special.pyx":1445
 *     cdef npy_double _func_kerp_wrap "kerp_wrap"(npy_double)nogil
 * from ._convex_analysis cimport kl_div as _func_kl_div
 * ctypedef double _proto_kl_div_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_kl_div_t *_proto_kl_div_t_var = &_func_kl_div
 * from ._legacy cimport kn_unsafe as _func_kn_unsafe
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_kl_div_t(double, double);

/* "scipy/special/cython_special.pyx":1448
 * cdef _proto_kl_div_t *_proto_kl_div_t_var = &_func_kl_div
 * from ._legacy cimport kn_unsafe as _func_kn_unsafe
 * ctypedef double _proto_kn_unsafe_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_kn_unsafe_t *_proto_kn_unsafe_t_var = &_func_kn_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_kn_unsafe_t(double, double);

/* "scipy/special/cython_special.pyx":1465
 *     cdef npy_double _func_cbesk_wrap_e_real "cbesk_wrap_e_real"(npy_double, npy_double)nogil
 * from ._cunity cimport clog1p as _func_clog1p
 * ctypedef double complex _proto_clog1p_t(double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_clog1p_t *_proto_clog1p_t_var = &_func_clog1p
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_clog1p_t(__pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1472
 *     cdef npy_double _func_log_ndtr "log_ndtr"(npy_double)nogil
 * from ._loggamma cimport loggamma_real as _func_loggamma_real
 * ctypedef double _proto_loggamma_real_t(double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_loggamma_real_t *_proto_loggamma_real_t_var = &_func_loggamma_real
 * from ._loggamma cimport loggamma as _func_loggamma
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_loggamma_real_t(double);

/* "scipy/special/cython_special.pyx":1475
 * cdef _proto_loggamma_real_t *_proto_loggamma_real_t_var = &_func_loggamma_real
 * from ._loggamma cimport loggamma as _func_loggamma
 * ctypedef double complex _proto_loggamma_t(double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_loggamma_t *_proto_loggamma_t_var = &_func_loggamma
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_loggamma_t(__pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1508
 *     cdef npy_double _func_struve_l "struve_l"(npy_double, npy_double)nogil
 * from ._legacy cimport nbdtr_unsafe as _func_nbdtr_unsafe
 * ctypedef double _proto_nbdtr_unsafe_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_nbdtr_unsafe_t *_proto_nbdtr_unsafe_t_var = &_func_nbdtr_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_nbdtr_unsafe_t(double, double, double);

/* "scipy/special/cython_special.pyx":1513
 *     cdef npy_double _func_nbdtr "nbdtr"(npy_int, npy_int, npy_double)nogil
 * from ._legacy cimport nbdtrc_unsafe as _func_nbdtrc_unsafe
 * ctypedef double _proto_nbdtrc_unsafe_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_nbdtrc_unsafe_t *_proto_nbdtrc_unsafe_t_var = &_func_nbdtrc_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_nbdtrc_unsafe_t(double, double, double);

/* "scipy/special/cython_special.pyx":1518
 *     cdef npy_double _func_nbdtrc "nbdtrc"(npy_int, npy_int, npy_double)nogil
 * from ._legacy cimport nbdtri_unsafe as _func_nbdtri_unsafe
 * ctypedef double _proto_nbdtri_unsafe_t(double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_nbdtri_unsafe_t *_proto_nbdtri_unsafe_t_var = &_func_nbdtri_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_nbdtri_unsafe_t(double, double, double);

/* "scipy/special/cython_special.pyx":1579
 *     cdef npy_double _func_pdtrc "pdtrc"(npy_double, npy_double)nogil
 * from ._legacy cimport pdtri_unsafe as _func_pdtri_unsafe
 * ctypedef double _proto_pdtri_unsafe_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_pdtri_unsafe_t *_proto_pdtri_unsafe_t_var = &_func_pdtri_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_pdtri_unsafe_t(double, double);

/* "scipy/special/cython_special.pyx":1602
 *     cdef npy_int _func_prolate_radial2_wrap "prolate_radial2_wrap"(npy_double, npy_double, npy_double, npy_double, npy_double, npy_double *, npy_double *)nogil
 * from ._convex_analysis cimport pseudo_huber as _func_pseudo_huber
 * ctypedef double _proto_pseudo_huber_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_pseudo_huber_t *_proto_pseudo_huber_t_var = &_func_pseudo_huber
 * from ._digamma cimport cdigamma as _func_cdigamma
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_pseudo_huber_t(double, double);

/* "scipy/special/cython_special.pyx":1605
 * cdef _proto_pseudo_huber_t *_proto_pseudo_huber_t_var = &_func_pseudo_huber
 * from ._digamma cimport cdigamma as _func_cdigamma
 * ctypedef double complex _proto_cdigamma_t(double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_cdigamma_t *_proto_cdigamma_t_var = &_func_cdigamma
 * from ._digamma cimport digamma as _func_digamma
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_cdigamma_t(__pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1608
 * cdef _proto_cdigamma_t *_proto_cdigamma_t_var = &_func_cdigamma
 * from ._digamma cimport digamma as _func_digamma
 * ctypedef double _proto_digamma_t(double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_digamma_t *_proto_digamma_t_var = &_func_digamma
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_digamma_t(double);

/* "scipy/special/cython_special.pyx":1613
 *     cdef npy_double _func_radian "radian"(npy_double, npy_double, npy_double)nogil
 * from ._convex_analysis cimport rel_entr as _func_rel_entr
 * ctypedef double _proto_rel_entr_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_rel_entr_t *_proto_rel_entr_t_var = &_func_rel_entr
 * from ._loggamma cimport crgamma as _func_crgamma
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_rel_entr_t(double, double);

/* "scipy/special/cython_special.pyx":1616
 * cdef _proto_rel_entr_t *_proto_rel_entr_t_var = &_func_rel_entr
 * from ._loggamma cimport crgamma as _func_crgamma
 * ctypedef double complex _proto_crgamma_t(double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_crgamma_t *_proto_crgamma_t_var = &_func_crgamma
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_crgamma_t(__pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1623
 *     cdef npy_double _func_round "round"(npy_double)nogil
 * from ._sici cimport cshichi as _func_cshichi
 * ctypedef int _proto_cshichi_t(double complex, double complex *, double complex *) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_cshichi_t *_proto_cshichi_t_var = &_func_cshichi
 * cdef extern from "_ufuncs_defs.h":
 */
typedef int __pyx_t_5scipy_7special_14cython_special__proto_cshichi_t(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *);

/* "scipy/special/cython_special.pyx":1628
 *     cdef npy_int _func_shichi "shichi"(npy_double, npy_double *, npy_double *)nogil
 * from ._sici cimport csici as _func_csici
 * ctypedef int _proto_csici_t(double complex, double complex *, double complex *) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_csici_t *_proto_csici_t_var = &_func_csici
 * cdef extern from "_ufuncs_defs.h":
 */
typedef int __pyx_t_5scipy_7special_14cython_special__proto_csici_t(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *);

/* "scipy/special/cython_special.pyx":1635
 *     cdef npy_double _func_sindg "sindg"(npy_double)nogil
 * from ._legacy cimport smirnov_unsafe as _func_smirnov_unsafe
 * ctypedef double _proto_smirnov_unsafe_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_smirnov_unsafe_t *_proto_smirnov_unsafe_t_var = &_func_smirnov_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_smirnov_unsafe_t(double, double);

/* "scipy/special/cython_special.pyx":1640
 *     cdef npy_double _func_smirnov "smirnov"(npy_int, npy_double)nogil
 * from ._legacy cimport smirnovi_unsafe as _func_smirnovi_unsafe
 * ctypedef double _proto_smirnovi_unsafe_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_smirnovi_unsafe_t *_proto_smirnovi_unsafe_t_var = &_func_smirnovi_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_smirnovi_unsafe_t(double, double);

/* "scipy/special/cython_special.pyx":1645
 *     cdef npy_double _func_smirnovi "smirnovi"(npy_int, npy_double)nogil
 * from ._spence cimport cspence as _func_cspence
 * ctypedef double complex _proto_cspence_t(double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_cspence_t *_proto_cspence_t_var = &_func_cspence
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_cspence_t(__pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1650
 *     cdef npy_double _func_spence "spence"(npy_double)nogil
 * from ._legacy cimport sph_harmonic_unsafe as _func_sph_harmonic_unsafe
 * ctypedef double complex _proto_sph_harmonic_unsafe_t(double, double, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_sph_harmonic_unsafe_t *_proto_sph_harmonic_unsafe_t_var = &_func_sph_harmonic_unsafe
 * from .sph_harm cimport sph_harmonic as _func_sph_harmonic
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_sph_harmonic_unsafe_t(double, double, double, double);

/* "scipy/special/cython_special.pyx":1653
 * cdef _proto_sph_harmonic_unsafe_t *_proto_sph_harmonic_unsafe_t_var = &_func_sph_harmonic_unsafe
 * from .sph_harm cimport sph_harmonic as _func_sph_harmonic
 * ctypedef double complex _proto_sph_harmonic_t(int, int, double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_sph_harmonic_t *_proto_sph_harmonic_t_var = &_func_sph_harmonic
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_sph_harmonic_t(int, int, double, double);

/* "scipy/special/cython_special.pyx":1668
 *     cdef npy_double _func_tukeylambdacdf "tukeylambdacdf"(npy_double, npy_double)nogil
 * from ._xlogy cimport xlog1py as _func_xlog1py
 * ctypedef double _proto_xlog1py_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_xlog1py_double__t *_proto_xlog1py_double__t_var = &_func_xlog1py[double]
 * from ._xlogy cimport xlog1py as _func_xlog1py
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_xlog1py_double__t(double, double);

/* "scipy/special/cython_special.pyx":1671
 * cdef _proto_xlog1py_double__t *_proto_xlog1py_double__t_var = &_func_xlog1py[double]
 * from ._xlogy cimport xlog1py as _func_xlog1py
 * ctypedef double complex _proto_xlog1py_double_complex__t(double complex, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_xlog1py_double_complex__t *_proto_xlog1py_double_complex__t_var = &_func_xlog1py[double_complex]
 * from ._xlogy cimport xlogy as _func_xlogy
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_xlog1py_double_complex__t(__pyx_t_double_complex, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1674
 * cdef _proto_xlog1py_double_complex__t *_proto_xlog1py_double_complex__t_var = &_func_xlog1py[double_complex]
 * from ._xlogy cimport xlogy as _func_xlogy
 * ctypedef double _proto_xlogy_double__t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_xlogy_double__t *_proto_xlogy_double__t_var = &_func_xlogy[double]
 * from ._xlogy cimport xlogy as _func_xlogy
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_xlogy_double__t(double, double);

/* "scipy/special/cython_special.pyx":1677
 * cdef _proto_xlogy_double__t *_proto_xlogy_double__t_var = &_func_xlogy[double]
 * from ._xlogy cimport xlogy as _func_xlogy
 * ctypedef double complex _proto_xlogy_double_complex__t(double complex, double complex) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_xlogy_double_complex__t *_proto_xlogy_double_complex__t_var = &_func_xlogy[double_complex]
 * cdef extern from "_ufuncs_defs.h":
 */
typedef __pyx_t_double_complex __pyx_t_5scipy_7special_14cython_special__proto_xlogy_double_complex__t(__pyx_t_double_complex, __pyx_t_double_complex);

/* "scipy/special/cython_special.pyx":1684
 *     cdef npy_double _func_y1 "y1"(npy_double)nogil
 * from ._legacy cimport yn_unsafe as _func_yn_unsafe
 * ctypedef double _proto_yn_unsafe_t(double, double) nogil             # <<<<<<<<<<<<<<
 * cdef _proto_yn_unsafe_t *_proto_yn_unsafe_t_var = &_func_yn_unsafe
 * cdef extern from "_ufuncs_defs.h":
 */
typedef double __pyx_t_5scipy_7special_14cython_special__proto_yn_unsafe_t(double, double);

/* "_cython_special_custom.pxi":4
 * 
 * 
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:
 */
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn {
  int __pyx_n;
  int derivative;
};
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn {
  int __pyx_n;
  int derivative;
};

/* "_cython_special_custom.pxi":16
 * 
 * 
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:
 */
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn {
  int __pyx_n;
  int derivative;
};
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn {
  int __pyx_n;
  int derivative;
};

/* "_cython_special_custom.pxi":28
 * 
 * 
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:
 */
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_in {
  int __pyx_n;
  int derivative;
};
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_in {
  int __pyx_n;
  int derivative;
};

/* "_cython_special_custom.pxi":40
 * 
 * 
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:
 */
struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn {
  int __pyx_n;
  int derivative;
};
struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn {
  int __pyx_n;
  int derivative;
};

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
    const char* function_name);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* PyCFunctionFastCall.proto */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
#else
#define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#else
#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* SetItemInt.proto */
#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
               __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
                                               int is_list, int wraparound, int boundscheck);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* PyObjectCallNoArg.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod0.proto */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* RaiseNoneIterError.proto */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);

/* UnpackTupleError.proto */
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);

/* UnpackTuple2.proto */
#define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
    (likely(is_tuple || PyTuple_Check(tuple)) ?\
        (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
            __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
            (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
        __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
    PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
static int __Pyx_unpack_tuple2_generic(
    PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);

/* dict_iter.proto */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);

/* PyObjectCall2Args.proto */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        __Pyx_SET_SIZE(list, len + 1);
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
#define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* None.proto */
static CYTHON_INLINE long __Pyx_div_long(long, long);

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

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

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED 1
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#define __Pyx_CyFunction_GetClassObj(f)\
    (((__pyx_CyFunctionObject *) (f))->func_classobj)
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
    PyCFunctionObject func;
#if PY_VERSION_HEX < 0x030500A0
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj;
    void *defaults;
    int defaults_pyobjects;
    size_t defaults_size;  // used by FusedFunction for copying defaults
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_Check(obj)  (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *self,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(void);

/* FusedFunction.proto */
typedef struct {
    __pyx_CyFunctionObject func;
    PyObject *__signatures__;
    PyObject *type;
    PyObject *self;
} __pyx_FusedFunctionObject;
static PyObject *__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
                                         PyObject *qualname, PyObject *closure,
                                         PyObject *module, PyObject *globals,
                                         PyObject *code);
static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self);
static PyTypeObject *__pyx_FusedFunctionType = NULL;
static int __pyx_FusedFunction_init(void);
#define __Pyx_FusedFunction_USED

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* RealImag.proto */
#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
#else
    #define __Pyx_CREAL(z) ((z).real)
    #define __Pyx_CIMAG(z) ((z).imag)
#endif
#if defined(__cplusplus) && CYTHON_CCOMPLEX\
        && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
    #define __Pyx_SET_CREAL(z,x) ((z).real(x))
    #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
#else
    #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
    #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX
    #define __Pyx_c_eq_double(a, b)   ((a)==(b))
    #define __Pyx_c_sum_double(a, b)  ((a)+(b))
    #define __Pyx_c_diff_double(a, b) ((a)-(b))
    #define __Pyx_c_prod_double(a, b) ((a)*(b))
    #define __Pyx_c_quot_double(a, b) ((a)/(b))
    #define __Pyx_c_neg_double(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
    #define __Pyx_c_conj_double(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (::std::abs(z))
        #define __Pyx_c_pow_double(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_double(z) ((z)==0)
    #define __Pyx_c_conj_double(z)    (conj(z))
    #if 1
        #define __Pyx_c_abs_double(z)     (cabs(z))
        #define __Pyx_c_pow_double(a, b)  (cpow(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
    #endif
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX
    #define __Pyx_c_eq_float(a, b)   ((a)==(b))
    #define __Pyx_c_sum_float(a, b)  ((a)+(b))
    #define __Pyx_c_diff_float(a, b) ((a)-(b))
    #define __Pyx_c_prod_float(a, b) ((a)*(b))
    #define __Pyx_c_quot_float(a, b) ((a)/(b))
    #define __Pyx_c_neg_float(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
    #define __Pyx_c_conj_float(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (::std::abs(z))
        #define __Pyx_c_pow_float(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_float(z) ((z)==0)
    #define __Pyx_c_conj_float(z)    (conjf(z))
    #if 1
        #define __Pyx_c_abs_float(z)     (cabsf(z))
        #define __Pyx_c_pow_float(a, b)  (cpowf(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
    #endif
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX
    #define __Pyx_c_eq_long__double(a, b)   ((a)==(b))
    #define __Pyx_c_sum_long__double(a, b)  ((a)+(b))
    #define __Pyx_c_diff_long__double(a, b) ((a)-(b))
    #define __Pyx_c_prod_long__double(a, b) ((a)*(b))
    #define __Pyx_c_quot_long__double(a, b) ((a)/(b))
    #define __Pyx_c_neg_long__double(a)     (-(a))
  #ifdef __cplusplus
    #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)
    #define __Pyx_c_conj_long__double(z)    (::std::conj(z))
    #if 1
        #define __Pyx_c_abs_long__double(z)     (::std::abs(z))
        #define __Pyx_c_pow_long__double(a, b)  (::std::pow(a, b))
    #endif
  #else
    #define __Pyx_c_is_zero_long__double(z) ((z)==0)
    #define __Pyx_c_conj_long__double(z)    (conjl(z))
    #if 1
        #define __Pyx_c_abs_long__double(z)     (cabsl(z))
        #define __Pyx_c_pow_long__double(a, b)  (cpowl(a, b))
    #endif
 #endif
#else
    static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);
    static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);
    #if 1
        static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);
        static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
    #endif
#endif

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* FromPy.proto */
static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject*);

/* ToPy.proto */
#define __pyx_PyComplex_FromComplex(z)\
        PyComplex_FromDoubles((double)__Pyx_CREAL(z),\
                              (double)__Pyx_CIMAG(z))

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value);

/* None.proto */
static CYTHON_INLINE long __Pyx_pow_long(long, long);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* ImportNumPyArray.proto */
static PyObject *__pyx_numpy_ndarray = NULL;
static PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void);

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(void);

/* FunctionExport.proto */
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig);

/* VoidPtrImport.proto */
static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);


/* Module declarations from 'cpython.buffer' */

/* Module declarations from 'libc.string' */

/* Module declarations from 'libc.stdio' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.type' */
static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;

/* Module declarations from 'cpython' */

/* Module declarations from 'cpython.object' */

/* Module declarations from 'cpython.ref' */

/* Module declarations from 'cpython.mem' */

/* Module declarations from 'numpy' */

/* Module declarations from 'numpy' */
static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/

/* Module declarations from 'scipy.special.sf_error' */

/* Module declarations from 'cython' */

/* Module declarations from 'libc.math' */

/* Module declarations from 'libc' */

/* Module declarations from 'scipy.special._complexstuff' */
static CYTHON_INLINE npy_cdouble __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(npy_cdouble); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_13_complexstuff_zpack(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_13_complexstuff_zlog1(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE int __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zisnan(double); /*proto*/
static CYTHON_INLINE int __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE int __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisfinite(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE int __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisinf(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zabs(double); /*proto*/
static CYTHON_INLINE double __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zlog(double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zexp(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zpow(__pyx_t_double_complex, double); /*proto*/

/* Module declarations from 'scipy.special._ufuncs_cxx' */
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn_complex = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn_complex (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn_complex)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erf = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erf (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erf)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfc = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfc (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfc)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx_complex = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx_complex (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx_complex)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi_complex = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi_complex (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi_complex)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_log_ndtr = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_log_ndtr (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_log_ndtr)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_ndtr = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_ndtr (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_ndtr)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_voigt_profile = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_voigt_profile (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_voigt_profile)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_w = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_w (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_w)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_wrightomega = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_wrightomega (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_wrightomega)
static void **__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_wrightomega_real = 0;
#define __pyx_v_5scipy_7special_11_ufuncs_cxx__export_wrightomega_real (*__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_wrightomega_real)

/* Module declarations from 'scipy.special' */

/* Module declarations from 'scipy' */

/* Module declarations from 'scipy.special._cephes' */

/* Module declarations from 'scipy.special._spherical_bessel' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_d_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_d_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_d_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_d_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_d_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_d_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_d_real(long, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_d_complex(long, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_17_spherical_bessel_cbesj(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesj(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesy(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_17_spherical_bessel_cbesk(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesk(double, __pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._agm' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_4_agm__agm_iter(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_4_agm_agm(double, double); /*proto*/

/* Module declarations from 'libc.stdlib' */

/* Module declarations from 'numpy.math' */

/* Module declarations from 'scipy.special._ellip_harm' */
static CYTHON_INLINE double *__pyx_f_5scipy_7special_11_ellip_harm_lame_coefficients(double, double, int, int, void **, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_11_ellip_harm_ellip_harm_eval(double, double, int, int, double, double *, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_11_ellip_harm_ellip_harmonic(double, double, int, int, double, double, double); /*proto*/

/* Module declarations from 'scipy.special.sph_harm' */
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8sph_harm_sph_harmonic(int, int, double, double); /*proto*/

/* Module declarations from 'scipy.special._legacy' */
static CYTHON_INLINE void __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(char *, double, double); /*proto*/
static CYTHON_INLINE void __pyx_f_5scipy_7special_7_legacy__legacy_deprecation(char *, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_legacy_sph_harmonic_unsafe(double, double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_bdtr_unsafe(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_bdtrc_unsafe(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_bdtri_unsafe(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_expn_unsafe(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_nbdtrc_unsafe(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_nbdtr_unsafe(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_nbdtri_unsafe(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_pdtri_unsafe(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_kn_unsafe(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_yn_unsafe(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_smirnov_unsafe(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_smirnovi_unsafe(double, double); /*proto*/

/* Module declarations from 'scipy.special.orthogonal_eval' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_binom(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi_l(long, double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi_l(long, double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer_l(long, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre_l(long, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre_l(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_hermitenorm(long, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_hermite(long, double); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(double, double, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(double, double, double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp1f1(double, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp1f1(double, double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(double, double, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(double, double, double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi(double, double, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi(double, double, double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer(double, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer(double, double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre(double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(double, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(double, double, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre(double, __pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._boxcox' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_boxcox(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_boxcox1p(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_inv_boxcox(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_inv_boxcox1p(double, double); /*proto*/

/* Module declarations from 'scipy.special._ellipk' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_ellipk_ellipk(double); /*proto*/

/* Module declarations from 'scipy.special._convex_analysis' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_entr(double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_kl_div(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_rel_entr(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_huber(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_pseudo_huber(double, double); /*proto*/

/* Module declarations from 'scipy.special._cunity' */
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_cunity_clog1p(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_cunity_clog1p_ddouble(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_cunity_cexpm1(__pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._exprel' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_exprel_exprel(double); /*proto*/

/* Module declarations from 'scipy.special._trig' */
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_5_trig_csinpi(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_5_trig_ccospi(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_sinpi(double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_5_trig_sinpi(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_cospi(double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_5_trig_cospi(__pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._evalpoly' */
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_evalpoly_cevalpoly(double *, int, __pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._loggamma' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_9_loggamma_loggamma_real(double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma_recurrence(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma_stirling(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma_taylor(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_cgamma(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_crgamma(__pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._xlogy' */
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlogy(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlogy(__pyx_t_double_complex, __pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlog1py(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlog1py(__pyx_t_double_complex, __pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._hyp0f1' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_real(double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_asy(double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_cmplx(double, __pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special._hypergeometric' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyperu(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1_series_track_convergence(double, double, double); /*proto*/
static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1_series(double, double, double); /*proto*/

/* Module declarations from 'scipy.special._digamma' */
static CYTHON_INLINE double __pyx_f_5scipy_7special_8_digamma_digamma(double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_cdigamma(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_forward_recurrence(__pyx_t_double_complex, __pyx_t_double_complex, int); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_backward_recurrence(__pyx_t_double_complex, __pyx_t_double_complex, int); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_asymptotic_series(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_8_digamma_zeta_series(double, double, double); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_8_digamma_zeta_series(__pyx_t_double_complex, double, double); /*proto*/

/* Module declarations from 'scipy.special._sici' */
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_5_sici_zexpi(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE void __pyx_f_5scipy_7special_5_sici_power_series(int, __pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static CYTHON_INLINE int __pyx_f_5scipy_7special_5_sici_csici(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static CYTHON_INLINE int __pyx_f_5scipy_7special_5_sici_cshichi(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/

/* Module declarations from 'scipy.special._spence' */
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_spence_cspence(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_spence_cspence_series0(__pyx_t_double_complex); /*proto*/
static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_spence_cspence_series1(__pyx_t_double_complex); /*proto*/

/* Module declarations from 'scipy.special.cython_special' */
static __pyx_t_5scipy_7special_14cython_special__proto_agm_t *__pyx_v_5scipy_7special_14cython_special__proto_agm_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_bdtr_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_bdtr_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_bdtrc_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_bdtrc_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_bdtri_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_bdtri_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_binom_t *__pyx_v_5scipy_7special_14cython_special__proto_binom_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_boxcox_t *__pyx_v_5scipy_7special_14cython_special__proto_boxcox_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_boxcox1p_t *__pyx_v_5scipy_7special_14cython_special__proto_boxcox1p_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_ellipk_t *__pyx_v_5scipy_7special_14cython_special__proto_ellipk_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_entr_t *__pyx_v_5scipy_7special_14cython_special__proto_entr_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyc_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyc_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyc_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyc_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyc_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyc_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebys_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebys_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebys_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebys_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebys_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebys_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyt_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyt_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyt_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyt_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyt_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyt_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyu_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyu_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyu_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyu_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_chebyu_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_chebyu_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_gegenbauer_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_gegenbauer_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_gegenbauer_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_gegenbauer_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_gegenbauer_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_gegenbauer_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_genlaguerre_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_genlaguerre_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_genlaguerre_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_genlaguerre_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_genlaguerre_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_genlaguerre_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_hermite_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_hermite_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_hermitenorm_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_hermitenorm_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_jacobi_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_jacobi_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_jacobi_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_jacobi_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_jacobi_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_jacobi_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_laguerre_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_laguerre_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_laguerre_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_laguerre_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_laguerre_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_laguerre_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_legendre_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_legendre_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_legendre_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_legendre_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_legendre_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_legendre_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyt_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyt_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_chebyu_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyu_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_jacobi_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_jacobi_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_legendre_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_legendre_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_legendre_double__t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_legendre_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_eval_sh_legendre_l_t *__pyx_v_5scipy_7special_14cython_special__proto_eval_sh_legendre_l_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_cexpm1_t *__pyx_v_5scipy_7special_14cython_special__proto_cexpm1_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_expn_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_expn_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_exprel_t *__pyx_v_5scipy_7special_14cython_special__proto_exprel_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_cgamma_t *__pyx_v_5scipy_7special_14cython_special__proto_cgamma_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_huber_t *__pyx_v_5scipy_7special_14cython_special__proto_huber_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto__hyp0f1_cmplx_t *__pyx_v_5scipy_7special_14cython_special__proto__hyp0f1_cmplx_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto__hyp0f1_real_t *__pyx_v_5scipy_7special_14cython_special__proto__hyp0f1_real_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_hyp1f1_t *__pyx_v_5scipy_7special_14cython_special__proto_hyp1f1_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_hyperu_t *__pyx_v_5scipy_7special_14cython_special__proto_hyperu_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_inv_boxcox_t *__pyx_v_5scipy_7special_14cython_special__proto_inv_boxcox_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_inv_boxcox1p_t *__pyx_v_5scipy_7special_14cython_special__proto_inv_boxcox1p_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_kl_div_t *__pyx_v_5scipy_7special_14cython_special__proto_kl_div_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_kn_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_kn_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_clog1p_t *__pyx_v_5scipy_7special_14cython_special__proto_clog1p_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_loggamma_real_t *__pyx_v_5scipy_7special_14cython_special__proto_loggamma_real_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_loggamma_t *__pyx_v_5scipy_7special_14cython_special__proto_loggamma_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_nbdtr_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_nbdtr_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_nbdtrc_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_nbdtrc_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_nbdtri_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_nbdtri_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_pdtri_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_pdtri_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_pseudo_huber_t *__pyx_v_5scipy_7special_14cython_special__proto_pseudo_huber_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_cdigamma_t *__pyx_v_5scipy_7special_14cython_special__proto_cdigamma_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_digamma_t *__pyx_v_5scipy_7special_14cython_special__proto_digamma_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_rel_entr_t *__pyx_v_5scipy_7special_14cython_special__proto_rel_entr_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_crgamma_t *__pyx_v_5scipy_7special_14cython_special__proto_crgamma_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_cshichi_t *__pyx_v_5scipy_7special_14cython_special__proto_cshichi_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_csici_t *__pyx_v_5scipy_7special_14cython_special__proto_csici_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_smirnov_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_smirnov_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_smirnovi_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_smirnovi_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_cspence_t *__pyx_v_5scipy_7special_14cython_special__proto_cspence_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_sph_harmonic_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_sph_harmonic_unsafe_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_sph_harmonic_t *__pyx_v_5scipy_7special_14cython_special__proto_sph_harmonic_t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_xlog1py_double__t *__pyx_v_5scipy_7special_14cython_special__proto_xlog1py_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_xlog1py_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_xlog1py_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_xlogy_double__t *__pyx_v_5scipy_7special_14cython_special__proto_xlogy_double__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_xlogy_double_complex__t *__pyx_v_5scipy_7special_14cython_special__proto_xlogy_double_complex__t_var;
static __pyx_t_5scipy_7special_14cython_special__proto_yn_unsafe_t *__pyx_v_5scipy_7special_14cython_special__proto_yn_unsafe_t_var;
static double __pyx_f_5scipy_7special_14cython_special_voigt_profile(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_agm(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_bdtrik(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_bdtrin(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_bei(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_beip(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ber(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_berp(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_besselpoly(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_beta(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_betainc(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_betaincinv(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_betaln(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_binom(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_boxcox(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_boxcox1p(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtr(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtri(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtria(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtrib(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cbrt(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtr(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtrc(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtri(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtriv(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtr(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtridf(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtrinc(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtrix(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cosdg(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cosm1(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cotdg(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipe(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipeinc(double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_ellipj(double, double, double *, double *, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipkinc(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipkm1(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipk(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_entr(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_erfinv(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_erfcinv(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_eval_hermite(long, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_eval_hermitenorm(long, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_exp10(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_exp2(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_exprel(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtr(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtrc(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtri(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtridfd(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammainc(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammaincc(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammainccinv(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammaincinv(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammaln(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammasgn(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtr(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtrc(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtria(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtrib(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtrix(double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel1(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel1e(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel2(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel2e(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_huber(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_hyperu(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i0(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i0e(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i1(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i1e(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_inv_boxcox(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_inv_boxcox1p(double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_it2i0k0(double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_it2j0y0(double, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_it2struve0(double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_itairy(double, double *, double *, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_iti0k0(double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_itj0y0(double, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_itmodstruve0(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_itstruve0(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_j0(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_j1(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k0(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k0e(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k1(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k1e(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kei(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_keip(double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_kelvin(double, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ker(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kerp(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kl_div(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kolmogi(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kolmogorov(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_lpmv(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_mathieu_a(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_mathieu_b(double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_mathieu_cem(double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_mathieu_modcem1(double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_mathieu_modcem2(double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_mathieu_modsem1(double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_mathieu_modsem2(double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_mathieu_sem(double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_modfresnelm(double, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_modfresnelp(double, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_modstruve(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nbdtrik(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nbdtrin(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtr(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtri(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtridfd(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtridfn(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtrinc(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtr(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtridf(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtrinc(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtrit(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ndtri(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nrdtrimn(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nrdtrisd(double, double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_obl_ang1(double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_obl_ang1_cv(double, double, double, double, double, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_obl_cv(double, double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_obl_rad1(double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_obl_rad1_cv(double, double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_obl_rad2(double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_obl_rad2_cv(double, double, double, double, double, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_owens_t(double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pbdv(double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pbvv(double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pbwa(double, double, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pdtr(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pdtrc(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pdtrik(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_poch(double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pro_ang1(double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pro_ang1_cv(double, double, double, double, double, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pro_cv(double, double, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pro_rad1(double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pro_rad1_cv(double, double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pro_rad2(double, double, double, double, double *, double *); /*proto*/
static void __pyx_f_5scipy_7special_14cython_special_pro_rad2_cv(double, double, double, double, double, double *, double *); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pseudo_huber(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_radian(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_rel_entr(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_round(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_sindg(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_stdtr(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_stdtridf(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_stdtrit(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_struve(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_tandg(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_tklmbda(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_wofz(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_y0(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_y1(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_zetac(double, int __pyx_skip_dispatch); /*proto*/
__PYX_EXTERN_C int wrap_PyUFunc_getfperr(void); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_jn(long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn *__pyx_optional_args); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_jn(long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn *__pyx_optional_args); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_yn(long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn *__pyx_optional_args); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_yn(long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn *__pyx_optional_args); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_in(long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_in *__pyx_optional_args); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_in(long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_in *__pyx_optional_args); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_kn(long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn *__pyx_optional_args); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_kn(long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn *__pyx_optional_args); /*proto*/
static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airy(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airy(double, double *, double *, double *, double *); /*proto*/
static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airye(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airye(double, double *, double *, double *, double *); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtr(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtr(double, long, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtrc(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtrc(double, long, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtri(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtri(double, long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_dawsn(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_dawsn(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erf(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erf(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfc(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfc(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfcx(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfcx(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfi(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfi(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebys(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebys(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebys(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebys(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(long, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(long, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(long, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(long, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi(double, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi(long, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi(long, double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_legendre(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_legendre(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_legendre(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_legendre(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(double, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(long, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(long, double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(long, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_exp1(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_exp1(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expi(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expi(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expit(double, int __pyx_skip_dispatch); /*proto*/
static float __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expit(float, int __pyx_skip_dispatch); /*proto*/
static long double __pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_expit(long double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expm1(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expm1(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expn(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expn(long, double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_fresnel(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_fresnel(double, double *, double *); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_gamma(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_gamma(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp0f1(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp0f1(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp1f1(double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp1f1(double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp2f1(double, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp2f1(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_iv(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_iv(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ive(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ive(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jv(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jv(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jve(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jve(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kn(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kn(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kv(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kv(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kve(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kve(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log1p(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log1p(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log_ndtr(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log_ndtr(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_loggamma(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_loggamma(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_logit(double, int __pyx_skip_dispatch); /*proto*/
static float __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_logit(float, int __pyx_skip_dispatch); /*proto*/
static long double __pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_logit(long double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtr(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtr(long, long, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtrc(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtrc(long, long, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtri(double, double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtri(long, long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ndtr(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ndtr(double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_pdtri(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_pdtri(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_psi(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_psi(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_rgamma(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_rgamma(double, int __pyx_skip_dispatch); /*proto*/
static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_shichi(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_shichi(double, double *, double *); /*proto*/
static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sici(__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *); /*proto*/
static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sici(double, double *, double *); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnov(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnov(long, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnovi(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnovi(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spence(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spence(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sph_harm(double, double, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sph_harm(long, long, double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_wrightomega(__pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_wrightomega(double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlog1py(__pyx_t_double_complex, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlog1py(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlogy(__pyx_t_double_complex, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlogy(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yn(double, double, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yn(long, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yv(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yv(double, double, int __pyx_skip_dispatch); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yve(double, __pyx_t_double_complex, int __pyx_skip_dispatch); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yve(double, double, int __pyx_skip_dispatch); /*proto*/
#define __Pyx_MODULE_NAME "scipy.special.cython_special"
extern int __pyx_module_is_main_scipy__special__cython_special;
int __pyx_module_is_main_scipy__special__cython_special = 0;

/* Implementation of 'scipy.special.cython_special' */
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_RuntimeError;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_RuntimeWarning;
static PyObject *__pyx_builtin_DeprecationWarning;
static const char __pyx_k_N[] = "N";
static const char __pyx_k_n[] = "n";
static const char __pyx_k_s[] = "s";
static const char __pyx_k_z[] = "z";
static const char __pyx_k__2[] = "()";
static const char __pyx_k__3[] = "|";
static const char __pyx_k_iv[] = "iv";
static const char __pyx_k_jv[] = "jv";
static const char __pyx_k_kn[] = "kn";
static const char __pyx_k_kv[] = "kv";
static const char __pyx_k_x0[] = "x0";
static const char __pyx_k_x1[] = "x1";
static const char __pyx_k_x2[] = "x2";
static const char __pyx_k_x3[] = "x3";
static const char __pyx_k_x4[] = "x4";
static const char __pyx_k_y0[] = "y0";
static const char __pyx_k_y1[] = "y1";
static const char __pyx_k_y2[] = "y2";
static const char __pyx_k_y3[] = "y3";
static const char __pyx_k_yn[] = "yn";
static const char __pyx_k_yv[] = "yv";
static const char __pyx_k__17[] = "";
static const char __pyx_k_erf[] = "erf";
static const char __pyx_k_ive[] = "ive";
static const char __pyx_k_jve[] = "jve";
static const char __pyx_k_kve[] = "kve";
static const char __pyx_k_psi[] = "psi";
static const char __pyx_k_yve[] = "yve";
static const char __pyx_k_airy[] = "airy";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_bdtr[] = "bdtr";
static const char __pyx_k_beta[] = "beta";
static const char __pyx_k_erfc[] = "erfc";
static const char __pyx_k_erfi[] = "erfi";
static const char __pyx_k_exp1[] = "exp1";
static const char __pyx_k_expi[] = "expi";
static const char __pyx_k_expn[] = "expn";
static const char __pyx_k_long[] = "long";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "__name__";
static const char __pyx_k_ndtr[] = "ndtr";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_bdtrc[] = "bdtrc";
static const char __pyx_k_bdtri[] = "bdtri";
static const char __pyx_k_dawsn[] = "dawsn";
static const char __pyx_k_erfcx[] = "erfcx";
static const char __pyx_k_expit[] = "expit";
static const char __pyx_k_expm1[] = "expm1";
static const char __pyx_k_float[] = "float";
static const char __pyx_k_gamma[] = "gamma";
static const char __pyx_k_log1p[] = "log1p";
static const char __pyx_k_logit[] = "logit";
static const char __pyx_k_nbdtr[] = "nbdtr";
static const char __pyx_k_numpy[] = "numpy";
static const char __pyx_k_pdtri[] = "pdtri";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_split[] = "split";
static const char __pyx_k_strip[] = "strip";
static const char __pyx_k_xlogy[] = "xlogy";
static const char __pyx_k_double[] = "double";
static const char __pyx_k_exprel[] = "exprel";
static const char __pyx_k_hyp0f1[] = "hyp0f1";
static const char __pyx_k_hyp1f1[] = "hyp1f1";
static const char __pyx_k_hyp2f1[] = "hyp2f1";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_kwargs[] = "kwargs";
static const char __pyx_k_nbdtrc[] = "nbdtrc";
static const char __pyx_k_nbdtri[] = "nbdtri";
static const char __pyx_k_rgamma[] = "rgamma";
static const char __pyx_k_spence[] = "spence";
static const char __pyx_k_ufuncs[] = "_ufuncs";
static const char __pyx_k_smirnov[] = "smirnov";
static const char __pyx_k_xlog1py[] = "xlog1py";
static const char __pyx_k_defaults[] = "defaults";
static const char __pyx_k_log_ndtr[] = "log_ndtr";
static const char __pyx_k_loggamma[] = "loggamma";
static const char __pyx_k_smirnovi[] = "smirnovi";
static const char __pyx_k_sph_harm[] = "sph_harm";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_derivative[] = "derivative";
static const char __pyx_k_signatures[] = "signatures";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_airy_pywrap[] = "_airy_pywrap";
static const char __pyx_k_eval_chebyc[] = "eval_chebyc";
static const char __pyx_k_eval_chebys[] = "eval_chebys";
static const char __pyx_k_eval_chebyt[] = "eval_chebyt";
static const char __pyx_k_eval_chebyu[] = "eval_chebyu";
static const char __pyx_k_eval_jacobi[] = "eval_jacobi";
static const char __pyx_k_long_double[] = "long double";
static const char __pyx_k_pbdv_pywrap[] = "_pbdv_pywrap";
static const char __pyx_k_pbvv_pywrap[] = "_pbvv_pywrap";
static const char __pyx_k_pbwa_pywrap[] = "_pbwa_pywrap";
static const char __pyx_k_sici_pywrap[] = "_sici_pywrap";
static const char __pyx_k_wrightomega[] = "wrightomega";
static const char __pyx_k_RuntimeError[] = "RuntimeError";
static const char __pyx_k_airye_pywrap[] = "_airye_pywrap";
static const char __pyx_k_pyx_fuse_0iv[] = "__pyx_fuse_0iv";
static const char __pyx_k_pyx_fuse_0jv[] = "__pyx_fuse_0jv";
static const char __pyx_k_pyx_fuse_0kn[] = "__pyx_fuse_0kn";
static const char __pyx_k_pyx_fuse_0kv[] = "__pyx_fuse_0kv";
static const char __pyx_k_pyx_fuse_0yn[] = "__pyx_fuse_0yn";
static const char __pyx_k_pyx_fuse_0yv[] = "__pyx_fuse_0yv";
static const char __pyx_k_pyx_fuse_1iv[] = "__pyx_fuse_1iv";
static const char __pyx_k_pyx_fuse_1jv[] = "__pyx_fuse_1jv";
static const char __pyx_k_pyx_fuse_1kn[] = "__pyx_fuse_1kn";
static const char __pyx_k_pyx_fuse_1kv[] = "__pyx_fuse_1kv";
static const char __pyx_k_pyx_fuse_1yn[] = "__pyx_fuse_1yn";
static const char __pyx_k_pyx_fuse_1yv[] = "__pyx_fuse_1yv";
static const char __pyx_k_spherical_in[] = "spherical_in";
static const char __pyx_k_spherical_jn[] = "spherical_jn";
static const char __pyx_k_spherical_kn[] = "spherical_kn";
static const char __pyx_k_spherical_yn[] = "spherical_yn";
static const char __pyx_k_double_double[] = "double|double";
static const char __pyx_k_ellipj_pywrap[] = "_ellipj_pywrap";
static const char __pyx_k_eval_laguerre[] = "eval_laguerre";
static const char __pyx_k_eval_legendre[] = "eval_legendre";
static const char __pyx_k_itairy_pywrap[] = "_itairy_pywrap";
static const char __pyx_k_iti0k0_pywrap[] = "_iti0k0_pywrap";
static const char __pyx_k_itj0y0_pywrap[] = "_itj0y0_pywrap";
static const char __pyx_k_kelvin_pywrap[] = "_kelvin_pywrap";
static const char __pyx_k_long_double_2[] = "long|double";
static const char __pyx_k_pyx_fuse_0erf[] = "__pyx_fuse_0erf";
static const char __pyx_k_pyx_fuse_0ive[] = "__pyx_fuse_0ive";
static const char __pyx_k_pyx_fuse_0jve[] = "__pyx_fuse_0jve";
static const char __pyx_k_pyx_fuse_0kve[] = "__pyx_fuse_0kve";
static const char __pyx_k_pyx_fuse_0psi[] = "__pyx_fuse_0psi";
static const char __pyx_k_pyx_fuse_0yve[] = "__pyx_fuse_0yve";
static const char __pyx_k_pyx_fuse_1erf[] = "__pyx_fuse_1erf";
static const char __pyx_k_pyx_fuse_1ive[] = "__pyx_fuse_1ive";
static const char __pyx_k_pyx_fuse_1jve[] = "__pyx_fuse_1jve";
static const char __pyx_k_pyx_fuse_1kve[] = "__pyx_fuse_1kve";
static const char __pyx_k_pyx_fuse_1psi[] = "__pyx_fuse_1psi";
static const char __pyx_k_pyx_fuse_1yve[] = "__pyx_fuse_1yve";
static const char __pyx_k_scipy_special[] = "scipy.special";
static const char __pyx_k_shichi_pywrap[] = "_shichi_pywrap";
static const char __pyx_k_RuntimeWarning[] = "RuntimeWarning";
static const char __pyx_k_bench_erf_D_cy[] = "_bench_erf_D_cy";
static const char __pyx_k_bench_erf_D_py[] = "_bench_erf_D_py";
static const char __pyx_k_bench_erf_d_cy[] = "_bench_erf_d_cy";
static const char __pyx_k_bench_erf_d_py[] = "_bench_erf_d_py";
static const char __pyx_k_bench_jv_dD_cy[] = "_bench_jv_dD_cy";
static const char __pyx_k_bench_jv_dD_py[] = "_bench_jv_dD_py";
static const char __pyx_k_bench_jv_dd_cy[] = "_bench_jv_dd_cy";
static const char __pyx_k_bench_jv_dd_py[] = "_bench_jv_dd_py";
static const char __pyx_k_bench_psi_D_cy[] = "_bench_psi_D_cy";
static const char __pyx_k_bench_psi_D_py[] = "_bench_psi_D_py";
static const char __pyx_k_bench_psi_d_cy[] = "_bench_psi_d_cy";
static const char __pyx_k_bench_psi_d_py[] = "_bench_psi_d_py";
static const char __pyx_k_double_complex[] = "double complex";
static const char __pyx_k_eval_sh_chebyt[] = "eval_sh_chebyt";
static const char __pyx_k_eval_sh_chebyu[] = "eval_sh_chebyu";
static const char __pyx_k_eval_sh_jacobi[] = "eval_sh_jacobi";
static const char __pyx_k_fresnel_pywrap[] = "_fresnel_pywrap";
static const char __pyx_k_it2i0k0_pywrap[] = "_it2i0k0_pywrap";
static const char __pyx_k_it2j0y0_pywrap[] = "_it2j0y0_pywrap";
static const char __pyx_k_pyx_fuse_0bdtr[] = "__pyx_fuse_0bdtr";
static const char __pyx_k_pyx_fuse_0erfc[] = "__pyx_fuse_0erfc";
static const char __pyx_k_pyx_fuse_0erfi[] = "__pyx_fuse_0erfi";
static const char __pyx_k_pyx_fuse_0exp1[] = "__pyx_fuse_0exp1";
static const char __pyx_k_pyx_fuse_0expi[] = "__pyx_fuse_0expi";
static const char __pyx_k_pyx_fuse_0expn[] = "__pyx_fuse_0expn";
static const char __pyx_k_pyx_fuse_0ndtr[] = "__pyx_fuse_0ndtr";
static const char __pyx_k_pyx_fuse_1bdtr[] = "__pyx_fuse_1bdtr";
static const char __pyx_k_pyx_fuse_1erfc[] = "__pyx_fuse_1erfc";
static const char __pyx_k_pyx_fuse_1erfi[] = "__pyx_fuse_1erfi";
static const char __pyx_k_pyx_fuse_1exp1[] = "__pyx_fuse_1exp1";
static const char __pyx_k_pyx_fuse_1expi[] = "__pyx_fuse_1expi";
static const char __pyx_k_pyx_fuse_1expn[] = "__pyx_fuse_1expn";
static const char __pyx_k_pyx_fuse_1ndtr[] = "__pyx_fuse_1ndtr";
static const char __pyx_k_bench_airy_D_cy[] = "_bench_airy_D_cy";
static const char __pyx_k_bench_airy_D_py[] = "_bench_airy_D_py";
static const char __pyx_k_bench_airy_d_cy[] = "_bench_airy_d_cy";
static const char __pyx_k_bench_airy_d_py[] = "_bench_airy_d_py";
static const char __pyx_k_eval_gegenbauer[] = "eval_gegenbauer";
static const char __pyx_k_obl_ang1_pywrap[] = "_obl_ang1_pywrap";
static const char __pyx_k_obl_rad1_pywrap[] = "_obl_rad1_pywrap";
static const char __pyx_k_obl_rad2_pywrap[] = "_obl_rad2_pywrap";
static const char __pyx_k_pro_ang1_pywrap[] = "_pro_ang1_pywrap";
static const char __pyx_k_pro_rad1_pywrap[] = "_pro_rad1_pywrap";
static const char __pyx_k_pro_rad2_pywrap[] = "_pro_rad2_pywrap";
static const char __pyx_k_pyx_fuse_0bdtrc[] = "__pyx_fuse_0bdtrc";
static const char __pyx_k_pyx_fuse_0bdtri[] = "__pyx_fuse_0bdtri";
static const char __pyx_k_pyx_fuse_0dawsn[] = "__pyx_fuse_0dawsn";
static const char __pyx_k_pyx_fuse_0erfcx[] = "__pyx_fuse_0erfcx";
static const char __pyx_k_pyx_fuse_0expit[] = "__pyx_fuse_0expit";
static const char __pyx_k_pyx_fuse_0expm1[] = "__pyx_fuse_0expm1";
static const char __pyx_k_pyx_fuse_0gamma[] = "__pyx_fuse_0gamma";
static const char __pyx_k_pyx_fuse_0log1p[] = "__pyx_fuse_0log1p";
static const char __pyx_k_pyx_fuse_0logit[] = "__pyx_fuse_0logit";
static const char __pyx_k_pyx_fuse_0nbdtr[] = "__pyx_fuse_0nbdtr";
static const char __pyx_k_pyx_fuse_0pdtri[] = "__pyx_fuse_0pdtri";
static const char __pyx_k_pyx_fuse_0xlogy[] = "__pyx_fuse_0xlogy";
static const char __pyx_k_pyx_fuse_1bdtrc[] = "__pyx_fuse_1bdtrc";
static const char __pyx_k_pyx_fuse_1bdtri[] = "__pyx_fuse_1bdtri";
static const char __pyx_k_pyx_fuse_1dawsn[] = "__pyx_fuse_1dawsn";
static const char __pyx_k_pyx_fuse_1erfcx[] = "__pyx_fuse_1erfcx";
static const char __pyx_k_pyx_fuse_1expit[] = "__pyx_fuse_1expit";
static const char __pyx_k_pyx_fuse_1expm1[] = "__pyx_fuse_1expm1";
static const char __pyx_k_pyx_fuse_1gamma[] = "__pyx_fuse_1gamma";
static const char __pyx_k_pyx_fuse_1log1p[] = "__pyx_fuse_1log1p";
static const char __pyx_k_pyx_fuse_1logit[] = "__pyx_fuse_1logit";
static const char __pyx_k_pyx_fuse_1nbdtr[] = "__pyx_fuse_1nbdtr";
static const char __pyx_k_pyx_fuse_1pdtri[] = "__pyx_fuse_1pdtri";
static const char __pyx_k_pyx_fuse_1xlogy[] = "__pyx_fuse_1xlogy";
static const char __pyx_k_pyx_fuse_2expit[] = "__pyx_fuse_2expit";
static const char __pyx_k_pyx_fuse_2logit[] = "__pyx_fuse_2logit";
static const char __pyx_k_bench_beta_dd_cy[] = "_bench_beta_dd_cy";
static const char __pyx_k_bench_beta_dd_py[] = "_bench_beta_dd_py";
static const char __pyx_k_bench_gamma_D_cy[] = "_bench_gamma_D_cy";
static const char __pyx_k_bench_gamma_D_py[] = "_bench_gamma_D_py";
static const char __pyx_k_bench_gamma_d_cy[] = "_bench_gamma_d_cy";
static const char __pyx_k_bench_gamma_d_py[] = "_bench_gamma_d_py";
static const char __pyx_k_bench_logit_d_cy[] = "_bench_logit_d_cy";
static const char __pyx_k_bench_logit_d_py[] = "_bench_logit_d_py";
static const char __pyx_k_eval_genlaguerre[] = "eval_genlaguerre";
static const char __pyx_k_eval_sh_legendre[] = "eval_sh_legendre";
static const char __pyx_k_pyx_fuse_0hyp0f1[] = "__pyx_fuse_0hyp0f1";
static const char __pyx_k_pyx_fuse_0hyp1f1[] = "__pyx_fuse_0hyp1f1";
static const char __pyx_k_pyx_fuse_0hyp2f1[] = "__pyx_fuse_0hyp2f1";
static const char __pyx_k_pyx_fuse_0nbdtrc[] = "__pyx_fuse_0nbdtrc";
static const char __pyx_k_pyx_fuse_0nbdtri[] = "__pyx_fuse_0nbdtri";
static const char __pyx_k_pyx_fuse_0rgamma[] = "__pyx_fuse_0rgamma";
static const char __pyx_k_pyx_fuse_0spence[] = "__pyx_fuse_0spence";
static const char __pyx_k_pyx_fuse_1hyp0f1[] = "__pyx_fuse_1hyp0f1";
static const char __pyx_k_pyx_fuse_1hyp1f1[] = "__pyx_fuse_1hyp1f1";
static const char __pyx_k_pyx_fuse_1hyp2f1[] = "__pyx_fuse_1hyp2f1";
static const char __pyx_k_pyx_fuse_1nbdtrc[] = "__pyx_fuse_1nbdtrc";
static const char __pyx_k_pyx_fuse_1nbdtri[] = "__pyx_fuse_1nbdtri";
static const char __pyx_k_pyx_fuse_1rgamma[] = "__pyx_fuse_1rgamma";
static const char __pyx_k_pyx_fuse_1spence[] = "__pyx_fuse_1spence";
static const char __pyx_k_bench_exprel_d_cy[] = "_bench_exprel_d_cy";
static const char __pyx_k_bench_exprel_d_py[] = "_bench_exprel_d_py";
static const char __pyx_k_pyx_fuse_0smirnov[] = "__pyx_fuse_0smirnov";
static const char __pyx_k_pyx_fuse_0xlog1py[] = "__pyx_fuse_0xlog1py";
static const char __pyx_k_pyx_fuse_1smirnov[] = "__pyx_fuse_1smirnov";
static const char __pyx_k_pyx_fuse_1xlog1py[] = "__pyx_fuse_1xlog1py";
static const char __pyx_k_DeprecationWarning[] = "DeprecationWarning";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_cython_special_pyx[] = "cython_special.pyx";
static const char __pyx_k_mathieu_cem_pywrap[] = "_mathieu_cem_pywrap";
static const char __pyx_k_mathieu_sem_pywrap[] = "_mathieu_sem_pywrap";
static const char __pyx_k_modfresnelm_pywrap[] = "_modfresnelm_pywrap";
static const char __pyx_k_modfresnelp_pywrap[] = "_modfresnelp_pywrap";
static const char __pyx_k_obl_ang1_cv_pywrap[] = "_obl_ang1_cv_pywrap";
static const char __pyx_k_obl_rad1_cv_pywrap[] = "_obl_rad1_cv_pywrap";
static const char __pyx_k_obl_rad2_cv_pywrap[] = "_obl_rad2_cv_pywrap";
static const char __pyx_k_pro_ang1_cv_pywrap[] = "_pro_ang1_cv_pywrap";
static const char __pyx_k_pro_rad1_cv_pywrap[] = "_pro_rad1_cv_pywrap";
static const char __pyx_k_pro_rad2_cv_pywrap[] = "_pro_rad2_cv_pywrap";
static const char __pyx_k_pyx_fuse_0log_ndtr[] = "__pyx_fuse_0log_ndtr";
static const char __pyx_k_pyx_fuse_0loggamma[] = "__pyx_fuse_0loggamma";
static const char __pyx_k_pyx_fuse_0smirnovi[] = "__pyx_fuse_0smirnovi";
static const char __pyx_k_pyx_fuse_0sph_harm[] = "__pyx_fuse_0sph_harm";
static const char __pyx_k_pyx_fuse_1log_ndtr[] = "__pyx_fuse_1log_ndtr";
static const char __pyx_k_pyx_fuse_1loggamma[] = "__pyx_fuse_1loggamma";
static const char __pyx_k_pyx_fuse_1smirnovi[] = "__pyx_fuse_1smirnovi";
static const char __pyx_k_pyx_fuse_1sph_harm[] = "__pyx_fuse_1sph_harm";
static const char __pyx_k_bench_loggamma_D_cy[] = "_bench_loggamma_D_cy";
static const char __pyx_k_bench_loggamma_D_py[] = "_bench_loggamma_D_py";
static const char __pyx_k_long_double_complex[] = "long|double complex";
static const char __pyx_k_double_double_complex[] = "double|double complex";
static const char __pyx_k_pyx_fuse_0wrightomega[] = "__pyx_fuse_0wrightomega";
static const char __pyx_k_pyx_fuse_1wrightomega[] = "__pyx_fuse_1wrightomega";
static const char __pyx_k_mathieu_modcem1_pywrap[] = "_mathieu_modcem1_pywrap";
static const char __pyx_k_mathieu_modcem2_pywrap[] = "_mathieu_modcem2_pywrap";
static const char __pyx_k_mathieu_modsem1_pywrap[] = "_mathieu_modsem1_pywrap";
static const char __pyx_k_mathieu_modsem2_pywrap[] = "_mathieu_modsem2_pywrap";
static const char __pyx_k_pyx_fuse_0spherical_in[] = "__pyx_fuse_0spherical_in";
static const char __pyx_k_pyx_fuse_0spherical_jn[] = "__pyx_fuse_0spherical_jn";
static const char __pyx_k_pyx_fuse_0spherical_kn[] = "__pyx_fuse_0spherical_kn";
static const char __pyx_k_pyx_fuse_0spherical_yn[] = "__pyx_fuse_0spherical_yn";
static const char __pyx_k_pyx_fuse_1spherical_in[] = "__pyx_fuse_1spherical_in";
static const char __pyx_k_pyx_fuse_1spherical_jn[] = "__pyx_fuse_1spherical_jn";
static const char __pyx_k_pyx_fuse_1spherical_kn[] = "__pyx_fuse_1spherical_kn";
static const char __pyx_k_pyx_fuse_1spherical_yn[] = "__pyx_fuse_1spherical_yn";
static const char __pyx_k_pyx_fuse_0_0eval_chebyc[] = "__pyx_fuse_0_0eval_chebyc";
static const char __pyx_k_pyx_fuse_0_0eval_chebys[] = "__pyx_fuse_0_0eval_chebys";
static const char __pyx_k_pyx_fuse_0_0eval_chebyt[] = "__pyx_fuse_0_0eval_chebyt";
static const char __pyx_k_pyx_fuse_0_0eval_chebyu[] = "__pyx_fuse_0_0eval_chebyu";
static const char __pyx_k_pyx_fuse_0_0eval_jacobi[] = "__pyx_fuse_0_0eval_jacobi";
static const char __pyx_k_pyx_fuse_0_1eval_chebyc[] = "__pyx_fuse_0_1eval_chebyc";
static const char __pyx_k_pyx_fuse_0_1eval_chebys[] = "__pyx_fuse_0_1eval_chebys";
static const char __pyx_k_pyx_fuse_0_1eval_chebyt[] = "__pyx_fuse_0_1eval_chebyt";
static const char __pyx_k_pyx_fuse_0_1eval_chebyu[] = "__pyx_fuse_0_1eval_chebyu";
static const char __pyx_k_pyx_fuse_0_1eval_jacobi[] = "__pyx_fuse_0_1eval_jacobi";
static const char __pyx_k_pyx_fuse_1_0eval_chebyc[] = "__pyx_fuse_1_0eval_chebyc";
static const char __pyx_k_pyx_fuse_1_0eval_chebys[] = "__pyx_fuse_1_0eval_chebys";
static const char __pyx_k_pyx_fuse_1_0eval_chebyt[] = "__pyx_fuse_1_0eval_chebyt";
static const char __pyx_k_pyx_fuse_1_0eval_chebyu[] = "__pyx_fuse_1_0eval_chebyu";
static const char __pyx_k_pyx_fuse_1_0eval_jacobi[] = "__pyx_fuse_1_0eval_jacobi";
static const char __pyx_k_pyx_fuse_1_1eval_chebyc[] = "__pyx_fuse_1_1eval_chebyc";
static const char __pyx_k_pyx_fuse_1_1eval_chebys[] = "__pyx_fuse_1_1eval_chebys";
static const char __pyx_k_pyx_fuse_1_1eval_chebyt[] = "__pyx_fuse_1_1eval_chebyt";
static const char __pyx_k_pyx_fuse_1_1eval_chebyu[] = "__pyx_fuse_1_1eval_chebyu";
static const char __pyx_k_pyx_fuse_1_1eval_jacobi[] = "__pyx_fuse_1_1eval_jacobi";
static const char __pyx_k_cython_special_custom_pxi[] = "_cython_special_custom.pxi";
static const char __pyx_k_pyx_fuse_0_0eval_laguerre[] = "__pyx_fuse_0_0eval_laguerre";
static const char __pyx_k_pyx_fuse_0_0eval_legendre[] = "__pyx_fuse_0_0eval_legendre";
static const char __pyx_k_pyx_fuse_0_1eval_laguerre[] = "__pyx_fuse_0_1eval_laguerre";
static const char __pyx_k_pyx_fuse_0_1eval_legendre[] = "__pyx_fuse_0_1eval_legendre";
static const char __pyx_k_pyx_fuse_1_0eval_laguerre[] = "__pyx_fuse_1_0eval_laguerre";
static const char __pyx_k_pyx_fuse_1_0eval_legendre[] = "__pyx_fuse_1_0eval_legendre";
static const char __pyx_k_pyx_fuse_1_1eval_laguerre[] = "__pyx_fuse_1_1eval_laguerre";
static const char __pyx_k_pyx_fuse_1_1eval_legendre[] = "__pyx_fuse_1_1eval_legendre";
static const char __pyx_k_pyx_fuse_0_0eval_sh_chebyt[] = "__pyx_fuse_0_0eval_sh_chebyt";
static const char __pyx_k_pyx_fuse_0_0eval_sh_chebyu[] = "__pyx_fuse_0_0eval_sh_chebyu";
static const char __pyx_k_pyx_fuse_0_0eval_sh_jacobi[] = "__pyx_fuse_0_0eval_sh_jacobi";
static const char __pyx_k_pyx_fuse_0_1eval_sh_chebyt[] = "__pyx_fuse_0_1eval_sh_chebyt";
static const char __pyx_k_pyx_fuse_0_1eval_sh_chebyu[] = "__pyx_fuse_0_1eval_sh_chebyu";
static const char __pyx_k_pyx_fuse_0_1eval_sh_jacobi[] = "__pyx_fuse_0_1eval_sh_jacobi";
static const char __pyx_k_pyx_fuse_1_0eval_sh_chebyt[] = "__pyx_fuse_1_0eval_sh_chebyt";
static const char __pyx_k_pyx_fuse_1_0eval_sh_chebyu[] = "__pyx_fuse_1_0eval_sh_chebyu";
static const char __pyx_k_pyx_fuse_1_0eval_sh_jacobi[] = "__pyx_fuse_1_0eval_sh_jacobi";
static const char __pyx_k_pyx_fuse_1_1eval_sh_chebyt[] = "__pyx_fuse_1_1eval_sh_chebyt";
static const char __pyx_k_pyx_fuse_1_1eval_sh_chebyu[] = "__pyx_fuse_1_1eval_sh_chebyu";
static const char __pyx_k_pyx_fuse_1_1eval_sh_jacobi[] = "__pyx_fuse_1_1eval_sh_jacobi";
static const char __pyx_k_No_matching_signature_found[] = "No matching signature found";
static const char __pyx_k_pyx_fuse_0_0eval_gegenbauer[] = "__pyx_fuse_0_0eval_gegenbauer";
static const char __pyx_k_pyx_fuse_0_1eval_gegenbauer[] = "__pyx_fuse_0_1eval_gegenbauer";
static const char __pyx_k_pyx_fuse_1_0eval_gegenbauer[] = "__pyx_fuse_1_0eval_gegenbauer";
static const char __pyx_k_pyx_fuse_1_1eval_gegenbauer[] = "__pyx_fuse_1_1eval_gegenbauer";
static const char __pyx_k_pyx_fuse_0_0eval_genlaguerre[] = "__pyx_fuse_0_0eval_genlaguerre";
static const char __pyx_k_pyx_fuse_0_0eval_sh_legendre[] = "__pyx_fuse_0_0eval_sh_legendre";
static const char __pyx_k_pyx_fuse_0_1eval_genlaguerre[] = "__pyx_fuse_0_1eval_genlaguerre";
static const char __pyx_k_pyx_fuse_0_1eval_sh_legendre[] = "__pyx_fuse_0_1eval_sh_legendre";
static const char __pyx_k_pyx_fuse_1_0eval_genlaguerre[] = "__pyx_fuse_1_0eval_genlaguerre";
static const char __pyx_k_pyx_fuse_1_0eval_sh_legendre[] = "__pyx_fuse_1_0eval_sh_legendre";
static const char __pyx_k_pyx_fuse_1_1eval_genlaguerre[] = "__pyx_fuse_1_1eval_genlaguerre";
static const char __pyx_k_pyx_fuse_1_1eval_sh_legendre[] = "__pyx_fuse_1_1eval_sh_legendre";
static const char __pyx_k_scipy_special_cython_special[] = "scipy.special.cython_special";
static const char __pyx_k_highlight_cython_Cython_API_for[] = "\n.. highlight:: cython\n\nCython API for special functions\n================================\n\nScalar, typed versions of many of the functions in ``scipy.special``\ncan be accessed directly from Cython; the complete list is given\nbelow. Functions are overloaded using Cython fused types so their\nnames match their Python counterpart. The module follows the following\nconventions:\n\n- If a function's Python counterpart returns multiple values, then the\n  function returns its outputs via pointers in the final arguments.\n- If a function's Python counterpart returns a single value, then the\n  function's output is returned directly.\n\nThe module is usable from Cython via::\n\n    cimport scipy.special.cython_special\n\nError handling\n--------------\n\nFunctions can indicate an error by returning ``nan``; however they\ncannot emit warnings like their counterparts in ``scipy.special``.\n\nAvailable functions\n-------------------\n\n- :py:func:`~scipy.special.voigt_profile`::\n\n        double voigt_profile(double, double, double)\n\n- :py:func:`~scipy.special.agm`::\n\n        double agm(double, double)\n\n- :py:func:`~scipy.special.airy`::\n\n        void airy(double, double *, double *, double *, double *)\n        void airy(double complex, double complex *, double complex *, double complex *, double complex *)\n\n- :py:func:`~scipy.special.airye`::\n\n        void airye(double complex, double complex *, double complex *, double complex *, double complex *)\n        void airye(double, double *, double *, double *, double *)\n\n- :py:func:`~scipy.special.bdtr`::\n\n        double bdtr(double, double, double)\n        double bdtr(double, long, double)\n\n- :py:func:`~scipy.special.bdtrc`::\n\n        double bdtrc(double, double, double)\n        double bdtrc(double, long, double)\n\n- :py:func:`~scipy.special.bdtri`::\n\n        double bdtri(double, double, double)\n        double bdtri(double, long, double)\n\n- :py:func:`~scipy.special.bdtrik`::\n\n        double"" bdtrik(double, double, double)\n\n- :py:func:`~scipy.special.bdtrin`::\n\n        double bdtrin(double, double, double)\n\n- :py:func:`~scipy.special.bei`::\n\n        double bei(double)\n\n- :py:func:`~scipy.special.beip`::\n\n        double beip(double)\n\n- :py:func:`~scipy.special.ber`::\n\n        double ber(double)\n\n- :py:func:`~scipy.special.berp`::\n\n        double berp(double)\n\n- :py:func:`~scipy.special.besselpoly`::\n\n        double besselpoly(double, double, double)\n\n- :py:func:`~scipy.special.beta`::\n\n        double beta(double, double)\n\n- :py:func:`~scipy.special.betainc`::\n\n        double betainc(double, double, double)\n\n- :py:func:`~scipy.special.betaincinv`::\n\n        double betaincinv(double, double, double)\n\n- :py:func:`~scipy.special.betaln`::\n\n        double betaln(double, double)\n\n- :py:func:`~scipy.special.binom`::\n\n        double binom(double, double)\n\n- :py:func:`~scipy.special.boxcox`::\n\n        double boxcox(double, double)\n\n- :py:func:`~scipy.special.boxcox1p`::\n\n        double boxcox1p(double, double)\n\n- :py:func:`~scipy.special.btdtr`::\n\n        double btdtr(double, double, double)\n\n- :py:func:`~scipy.special.btdtri`::\n\n        double btdtri(double, double, double)\n\n- :py:func:`~scipy.special.btdtria`::\n\n        double btdtria(double, double, double)\n\n- :py:func:`~scipy.special.btdtrib`::\n\n        double btdtrib(double, double, double)\n\n- :py:func:`~scipy.special.cbrt`::\n\n        double cbrt(double)\n\n- :py:func:`~scipy.special.chdtr`::\n\n        double chdtr(double, double)\n\n- :py:func:`~scipy.special.chdtrc`::\n\n        double chdtrc(double, double)\n\n- :py:func:`~scipy.special.chdtri`::\n\n        double chdtri(double, double)\n\n- :py:func:`~scipy.special.chdtriv`::\n\n        double chdtriv(double, double)\n\n- :py:func:`~scipy.special.chndtr`::\n\n        double chndtr(double, double, double)\n\n- :py:func:`~scipy.special.chndtridf`::\n\n        double chndtridf(double, ""double, double)\n\n- :py:func:`~scipy.special.chndtrinc`::\n\n        double chndtrinc(double, double, double)\n\n- :py:func:`~scipy.special.chndtrix`::\n\n        double chndtrix(double, double, double)\n\n- :py:func:`~scipy.special.cosdg`::\n\n        double cosdg(double)\n\n- :py:func:`~scipy.special.cosm1`::\n\n        double cosm1(double)\n\n- :py:func:`~scipy.special.cotdg`::\n\n        double cotdg(double)\n\n- :py:func:`~scipy.special.dawsn`::\n\n        double dawsn(double)\n        double complex dawsn(double complex)\n\n- :py:func:`~scipy.special.ellipe`::\n\n        double ellipe(double)\n\n- :py:func:`~scipy.special.ellipeinc`::\n\n        double ellipeinc(double, double)\n\n- :py:func:`~scipy.special.ellipj`::\n\n        void ellipj(double, double, double *, double *, double *, double *)\n\n- :py:func:`~scipy.special.ellipkinc`::\n\n        double ellipkinc(double, double)\n\n- :py:func:`~scipy.special.ellipkm1`::\n\n        double ellipkm1(double)\n\n- :py:func:`~scipy.special.ellipk`::\n\n        double ellipk(double)\n\n- :py:func:`~scipy.special.entr`::\n\n        double entr(double)\n\n- :py:func:`~scipy.special.erf`::\n\n        double complex erf(double complex)\n        double erf(double)\n\n- :py:func:`~scipy.special.erfc`::\n\n        double complex erfc(double complex)\n        double erfc(double)\n\n- :py:func:`~scipy.special.erfcx`::\n\n        double erfcx(double)\n        double complex erfcx(double complex)\n\n- :py:func:`~scipy.special.erfi`::\n\n        double erfi(double)\n        double complex erfi(double complex)\n\n- :py:func:`~scipy.special.erfinv`::\n\n        double erfinv(double)\n\n- :py:func:`~scipy.special.erfcinv`::\n\n        double erfcinv(double)\n\n- :py:func:`~scipy.special.eval_chebyc`::\n\n        double complex eval_chebyc(double, double complex)\n        double eval_chebyc(double, double)\n        double eval_chebyc(long, double)\n\n- :py:func:`~scipy.special.eval_chebys`::\n\n        double complex eval_chebys(d""ouble, double complex)\n        double eval_chebys(double, double)\n        double eval_chebys(long, double)\n\n- :py:func:`~scipy.special.eval_chebyt`::\n\n        double complex eval_chebyt(double, double complex)\n        double eval_chebyt(double, double)\n        double eval_chebyt(long, double)\n\n- :py:func:`~scipy.special.eval_chebyu`::\n\n        double complex eval_chebyu(double, double complex)\n        double eval_chebyu(double, double)\n        double eval_chebyu(long, double)\n\n- :py:func:`~scipy.special.eval_gegenbauer`::\n\n        double complex eval_gegenbauer(double, double, double complex)\n        double eval_gegenbauer(double, double, double)\n        double eval_gegenbauer(long, double, double)\n\n- :py:func:`~scipy.special.eval_genlaguerre`::\n\n        double complex eval_genlaguerre(double, double, double complex)\n        double eval_genlaguerre(double, double, double)\n        double eval_genlaguerre(long, double, double)\n\n- :py:func:`~scipy.special.eval_hermite`::\n\n        double eval_hermite(long, double)\n\n- :py:func:`~scipy.special.eval_hermitenorm`::\n\n        double eval_hermitenorm(long, double)\n\n- :py:func:`~scipy.special.eval_jacobi`::\n\n        double complex eval_jacobi(double, double, double, double complex)\n        double eval_jacobi(double, double, double, double)\n        double eval_jacobi(long, double, double, double)\n\n- :py:func:`~scipy.special.eval_laguerre`::\n\n        double complex eval_laguerre(double, double complex)\n        double eval_laguerre(double, double)\n        double eval_laguerre(long, double)\n\n- :py:func:`~scipy.special.eval_legendre`::\n\n        double complex eval_legendre(double, double complex)\n        double eval_legendre(double, double)\n        double eval_legendre(long, double)\n\n- :py:func:`~scipy.special.eval_sh_chebyt`::\n\n        double complex eval_sh_chebyt(double, double complex)\n        double eval_sh_chebyt(double, double)\n        double eval_sh_chebyt(long, doubl""e)\n\n- :py:func:`~scipy.special.eval_sh_chebyu`::\n\n        double complex eval_sh_chebyu(double, double complex)\n        double eval_sh_chebyu(double, double)\n        double eval_sh_chebyu(long, double)\n\n- :py:func:`~scipy.special.eval_sh_jacobi`::\n\n        double complex eval_sh_jacobi(double, double, double, double complex)\n        double eval_sh_jacobi(double, double, double, double)\n        double eval_sh_jacobi(long, double, double, double)\n\n- :py:func:`~scipy.special.eval_sh_legendre`::\n\n        double complex eval_sh_legendre(double, double complex)\n        double eval_sh_legendre(double, double)\n        double eval_sh_legendre(long, double)\n\n- :py:func:`~scipy.special.exp1`::\n\n        double complex exp1(double complex)\n        double exp1(double)\n\n- :py:func:`~scipy.special.exp10`::\n\n        double exp10(double)\n\n- :py:func:`~scipy.special.exp2`::\n\n        double exp2(double)\n\n- :py:func:`~scipy.special.expi`::\n\n        double complex expi(double complex)\n        double expi(double)\n\n- :py:func:`~scipy.special.expit`::\n\n        double expit(double)\n        float expit(float)\n        long double expit(long double)\n\n- :py:func:`~scipy.special.expm1`::\n\n        double complex expm1(double complex)\n        double expm1(double)\n\n- :py:func:`~scipy.special.expn`::\n\n        double expn(double, double)\n        double expn(long, double)\n\n- :py:func:`~scipy.special.exprel`::\n\n        double exprel(double)\n\n- :py:func:`~scipy.special.fdtr`::\n\n        double fdtr(double, double, double)\n\n- :py:func:`~scipy.special.fdtrc`::\n\n        double fdtrc(double, double, double)\n\n- :py:func:`~scipy.special.fdtri`::\n\n        double fdtri(double, double, double)\n\n- :py:func:`~scipy.special.fdtridfd`::\n\n        double fdtridfd(double, double, double)\n\n- :py:func:`~scipy.special.fresnel`::\n\n        void fresnel(double, double *, double *)\n        void fresnel(double complex, double complex *, double complex *"")\n\n- :py:func:`~scipy.special.gamma`::\n\n        double complex gamma(double complex)\n        double gamma(double)\n\n- :py:func:`~scipy.special.gammainc`::\n\n        double gammainc(double, double)\n\n- :py:func:`~scipy.special.gammaincc`::\n\n        double gammaincc(double, double)\n\n- :py:func:`~scipy.special.gammainccinv`::\n\n        double gammainccinv(double, double)\n\n- :py:func:`~scipy.special.gammaincinv`::\n\n        double gammaincinv(double, double)\n\n- :py:func:`~scipy.special.gammaln`::\n\n        double gammaln(double)\n\n- :py:func:`~scipy.special.gammasgn`::\n\n        double gammasgn(double)\n\n- :py:func:`~scipy.special.gdtr`::\n\n        double gdtr(double, double, double)\n\n- :py:func:`~scipy.special.gdtrc`::\n\n        double gdtrc(double, double, double)\n\n- :py:func:`~scipy.special.gdtria`::\n\n        double gdtria(double, double, double)\n\n- :py:func:`~scipy.special.gdtrib`::\n\n        double gdtrib(double, double, double)\n\n- :py:func:`~scipy.special.gdtrix`::\n\n        double gdtrix(double, double, double)\n\n- :py:func:`~scipy.special.hankel1`::\n\n        double complex hankel1(double, double complex)\n\n- :py:func:`~scipy.special.hankel1e`::\n\n        double complex hankel1e(double, double complex)\n\n- :py:func:`~scipy.special.hankel2`::\n\n        double complex hankel2(double, double complex)\n\n- :py:func:`~scipy.special.hankel2e`::\n\n        double complex hankel2e(double, double complex)\n\n- :py:func:`~scipy.special.huber`::\n\n        double huber(double, double)\n\n- :py:func:`~scipy.special.hyp0f1`::\n\n        double complex hyp0f1(double, double complex)\n        double hyp0f1(double, double)\n\n- :py:func:`~scipy.special.hyp1f1`::\n\n        double hyp1f1(double, double, double)\n        double complex hyp1f1(double, double, double complex)\n\n- :py:func:`~scipy.special.hyp2f1`::\n\n        double hyp2f1(double, double, double, double)\n        double complex hyp2f1(double, double, double, double complex)""\n\n- :py:func:`~scipy.special.hyperu`::\n\n        double hyperu(double, double, double)\n\n- :py:func:`~scipy.special.i0`::\n\n        double i0(double)\n\n- :py:func:`~scipy.special.i0e`::\n\n        double i0e(double)\n\n- :py:func:`~scipy.special.i1`::\n\n        double i1(double)\n\n- :py:func:`~scipy.special.i1e`::\n\n        double i1e(double)\n\n- :py:func:`~scipy.special.inv_boxcox`::\n\n        double inv_boxcox(double, double)\n\n- :py:func:`~scipy.special.inv_boxcox1p`::\n\n        double inv_boxcox1p(double, double)\n\n- :py:func:`~scipy.special.it2i0k0`::\n\n        void it2i0k0(double, double *, double *)\n\n- :py:func:`~scipy.special.it2j0y0`::\n\n        void it2j0y0(double, double *, double *)\n\n- :py:func:`~scipy.special.it2struve0`::\n\n        double it2struve0(double)\n\n- :py:func:`~scipy.special.itairy`::\n\n        void itairy(double, double *, double *, double *, double *)\n\n- :py:func:`~scipy.special.iti0k0`::\n\n        void iti0k0(double, double *, double *)\n\n- :py:func:`~scipy.special.itj0y0`::\n\n        void itj0y0(double, double *, double *)\n\n- :py:func:`~scipy.special.itmodstruve0`::\n\n        double itmodstruve0(double)\n\n- :py:func:`~scipy.special.itstruve0`::\n\n        double itstruve0(double)\n\n- :py:func:`~scipy.special.iv`::\n\n        double complex iv(double, double complex)\n        double iv(double, double)\n\n- :py:func:`~scipy.special.ive`::\n\n        double complex ive(double, double complex)\n        double ive(double, double)\n\n- :py:func:`~scipy.special.j0`::\n\n        double j0(double)\n\n- :py:func:`~scipy.special.j1`::\n\n        double j1(double)\n\n- :py:func:`~scipy.special.jv`::\n\n        double complex jv(double, double complex)\n        double jv(double, double)\n\n- :py:func:`~scipy.special.jve`::\n\n        double complex jve(double, double complex)\n        double jve(double, double)\n\n- :py:func:`~scipy.special.k0`::\n\n        double k0(double)\n\n- :py:func:`~scipy.special.k0e`::\n\n   ""     double k0e(double)\n\n- :py:func:`~scipy.special.k1`::\n\n        double k1(double)\n\n- :py:func:`~scipy.special.k1e`::\n\n        double k1e(double)\n\n- :py:func:`~scipy.special.kei`::\n\n        double kei(double)\n\n- :py:func:`~scipy.special.keip`::\n\n        double keip(double)\n\n- :py:func:`~scipy.special.kelvin`::\n\n        void kelvin(double, double complex *, double complex *, double complex *, double complex *)\n\n- :py:func:`~scipy.special.ker`::\n\n        double ker(double)\n\n- :py:func:`~scipy.special.kerp`::\n\n        double kerp(double)\n\n- :py:func:`~scipy.special.kl_div`::\n\n        double kl_div(double, double)\n\n- :py:func:`~scipy.special.kn`::\n\n        double kn(double, double)\n        double kn(long, double)\n\n- :py:func:`~scipy.special.kolmogi`::\n\n        double kolmogi(double)\n\n- :py:func:`~scipy.special.kolmogorov`::\n\n        double kolmogorov(double)\n\n- :py:func:`~scipy.special.kv`::\n\n        double complex kv(double, double complex)\n        double kv(double, double)\n\n- :py:func:`~scipy.special.kve`::\n\n        double complex kve(double, double complex)\n        double kve(double, double)\n\n- :py:func:`~scipy.special.log1p`::\n\n        double complex log1p(double complex)\n        double log1p(double)\n\n- :py:func:`~scipy.special.log_ndtr`::\n\n        double complex log_ndtr(double complex)\n        double log_ndtr(double)\n\n- :py:func:`~scipy.special.loggamma`::\n\n        double loggamma(double)\n        double complex loggamma(double complex)\n\n- :py:func:`~scipy.special.logit`::\n\n        double logit(double)\n        float logit(float)\n        long double logit(long double)\n\n- :py:func:`~scipy.special.lpmv`::\n\n        double lpmv(double, double, double)\n\n- :py:func:`~scipy.special.mathieu_a`::\n\n        double mathieu_a(double, double)\n\n- :py:func:`~scipy.special.mathieu_b`::\n\n        double mathieu_b(double, double)\n\n- :py:func:`~scipy.special.mathieu_cem`::\n\n        void mathieu""_cem(double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.mathieu_modcem1`::\n\n        void mathieu_modcem1(double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.mathieu_modcem2`::\n\n        void mathieu_modcem2(double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.mathieu_modsem1`::\n\n        void mathieu_modsem1(double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.mathieu_modsem2`::\n\n        void mathieu_modsem2(double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.mathieu_sem`::\n\n        void mathieu_sem(double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.modfresnelm`::\n\n        void modfresnelm(double, double complex *, double complex *)\n\n- :py:func:`~scipy.special.modfresnelp`::\n\n        void modfresnelp(double, double complex *, double complex *)\n\n- :py:func:`~scipy.special.modstruve`::\n\n        double modstruve(double, double)\n\n- :py:func:`~scipy.special.nbdtr`::\n\n        double nbdtr(double, double, double)\n        double nbdtr(long, long, double)\n\n- :py:func:`~scipy.special.nbdtrc`::\n\n        double nbdtrc(double, double, double)\n        double nbdtrc(long, long, double)\n\n- :py:func:`~scipy.special.nbdtri`::\n\n        double nbdtri(double, double, double)\n        double nbdtri(long, long, double)\n\n- :py:func:`~scipy.special.nbdtrik`::\n\n        double nbdtrik(double, double, double)\n\n- :py:func:`~scipy.special.nbdtrin`::\n\n        double nbdtrin(double, double, double)\n\n- :py:func:`~scipy.special.ncfdtr`::\n\n        double ncfdtr(double, double, double, double)\n\n- :py:func:`~scipy.special.ncfdtri`::\n\n        double ncfdtri(double, double, double, double)\n\n- :py:func:`~scipy.special.ncfdtridfd`::\n\n        double ncfdtridfd(double, double, double, double)\n\n- :py:func:`~scipy.special.ncfdtridfn`::\n\n        double ncfdtridfn(double, double, double, double)\n\n- :py:func:`~scipy.special.nc""fdtrinc`::\n\n        double ncfdtrinc(double, double, double, double)\n\n- :py:func:`~scipy.special.nctdtr`::\n\n        double nctdtr(double, double, double)\n\n- :py:func:`~scipy.special.nctdtridf`::\n\n        double nctdtridf(double, double, double)\n\n- :py:func:`~scipy.special.nctdtrinc`::\n\n        double nctdtrinc(double, double, double)\n\n- :py:func:`~scipy.special.nctdtrit`::\n\n        double nctdtrit(double, double, double)\n\n- :py:func:`~scipy.special.ndtr`::\n\n        double complex ndtr(double complex)\n        double ndtr(double)\n\n- :py:func:`~scipy.special.ndtri`::\n\n        double ndtri(double)\n\n- :py:func:`~scipy.special.nrdtrimn`::\n\n        double nrdtrimn(double, double, double)\n\n- :py:func:`~scipy.special.nrdtrisd`::\n\n        double nrdtrisd(double, double, double)\n\n- :py:func:`~scipy.special.obl_ang1`::\n\n        void obl_ang1(double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.obl_ang1_cv`::\n\n        void obl_ang1_cv(double, double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.obl_cv`::\n\n        double obl_cv(double, double, double)\n\n- :py:func:`~scipy.special.obl_rad1`::\n\n        void obl_rad1(double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.obl_rad1_cv`::\n\n        void obl_rad1_cv(double, double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.obl_rad2`::\n\n        void obl_rad2(double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.obl_rad2_cv`::\n\n        void obl_rad2_cv(double, double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.owens_t`::\n\n        double owens_t(double, double)\n\n- :py:func:`~scipy.special.pbdv`::\n\n        void pbdv(double, double, double *, double *)\n\n- :py:func:`~scipy.special.pbvv`::\n\n        void pbvv(double, double, double *, double *)\n\n- :py:func:`~scipy.special.pbwa`::\n\n        void pbwa(double, d""ouble, double *, double *)\n\n- :py:func:`~scipy.special.pdtr`::\n\n        double pdtr(double, double)\n\n- :py:func:`~scipy.special.pdtrc`::\n\n        double pdtrc(double, double)\n\n- :py:func:`~scipy.special.pdtri`::\n\n        double pdtri(double, double)\n        double pdtri(long, double)\n\n- :py:func:`~scipy.special.pdtrik`::\n\n        double pdtrik(double, double)\n\n- :py:func:`~scipy.special.poch`::\n\n        double poch(double, double)\n\n- :py:func:`~scipy.special.pro_ang1`::\n\n        void pro_ang1(double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.pro_ang1_cv`::\n\n        void pro_ang1_cv(double, double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.pro_cv`::\n\n        double pro_cv(double, double, double)\n\n- :py:func:`~scipy.special.pro_rad1`::\n\n        void pro_rad1(double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.pro_rad1_cv`::\n\n        void pro_rad1_cv(double, double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.pro_rad2`::\n\n        void pro_rad2(double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.pro_rad2_cv`::\n\n        void pro_rad2_cv(double, double, double, double, double, double *, double *)\n\n- :py:func:`~scipy.special.pseudo_huber`::\n\n        double pseudo_huber(double, double)\n\n- :py:func:`~scipy.special.psi`::\n\n        double complex psi(double complex)\n        double psi(double)\n\n- :py:func:`~scipy.special.radian`::\n\n        double radian(double, double, double)\n\n- :py:func:`~scipy.special.rel_entr`::\n\n        double rel_entr(double, double)\n\n- :py:func:`~scipy.special.rgamma`::\n\n        double complex rgamma(double complex)\n        double rgamma(double)\n\n- :py:func:`~scipy.special.round`::\n\n        double round(double)\n\n- :py:func:`~scipy.special.shichi`::\n\n        void shichi(double complex, double complex *, double complex *)\n        void s""hichi(double, double *, double *)\n\n- :py:func:`~scipy.special.sici`::\n\n        void sici(double complex, double complex *, double complex *)\n        void sici(double, double *, double *)\n\n- :py:func:`~scipy.special.sindg`::\n\n        double sindg(double)\n\n- :py:func:`~scipy.special.smirnov`::\n\n        double smirnov(double, double)\n        double smirnov(long, double)\n\n- :py:func:`~scipy.special.smirnovi`::\n\n        double smirnovi(double, double)\n        double smirnovi(long, double)\n\n- :py:func:`~scipy.special.spence`::\n\n        double complex spence(double complex)\n        double spence(double)\n\n- :py:func:`~scipy.special.sph_harm`::\n\n        double complex sph_harm(double, double, double, double)\n        double complex sph_harm(long, long, double, double)\n\n- :py:func:`~scipy.special.stdtr`::\n\n        double stdtr(double, double)\n\n- :py:func:`~scipy.special.stdtridf`::\n\n        double stdtridf(double, double)\n\n- :py:func:`~scipy.special.stdtrit`::\n\n        double stdtrit(double, double)\n\n- :py:func:`~scipy.special.struve`::\n\n        double struve(double, double)\n\n- :py:func:`~scipy.special.tandg`::\n\n        double tandg(double)\n\n- :py:func:`~scipy.special.tklmbda`::\n\n        double tklmbda(double, double)\n\n- :py:func:`~scipy.special.wofz`::\n\n        double complex wofz(double complex)\n\n- :py:func:`~scipy.special.wrightomega`::\n\n        double complex wrightomega(double complex)\n        double wrightomega(double)\n\n- :py:func:`~scipy.special.xlog1py`::\n\n        double xlog1py(double, double)\n        double complex xlog1py(double complex, double complex)\n\n- :py:func:`~scipy.special.xlogy`::\n\n        double xlogy(double, double)\n        double complex xlogy(double complex, double complex)\n\n- :py:func:`~scipy.special.y0`::\n\n        double y0(double)\n\n- :py:func:`~scipy.special.y1`::\n\n        double y1(double)\n\n- :py:func:`~scipy.special.yn`::\n\n        double yn(double, double)\n        ""double yn(long, double)\n\n- :py:func:`~scipy.special.yv`::\n\n        double complex yv(double, double complex)\n        double yv(double, double)\n\n- :py:func:`~scipy.special.yve`::\n\n        double complex yve(double, double complex)\n        double yve(double, double)\n\n- :py:func:`~scipy.special.zetac`::\n\n        double zetac(double)\n\n\nCustom functions\n----------------\n\nSome functions in ``scipy.special`` which are not ufuncs have custom\nCython wrappers.\n\nSpherical Bessel functions\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe optional ``derivative`` boolean argument is replaced with an\noptional Cython ``bint``, leading to the following signatures.\n\n- :py:func:`~scipy.special.spherical_jn`::\n\n        double complex spherical_jn(long, double complex)\n        double complex spherical_jn(long, double complex, bint)\n        double spherical_jn(long, double)\n        double spherical_jn(long, double, bint)\n\n- :py:func:`~scipy.special.spherical_yn`::\n\n        double complex spherical_yn(long, double complex)\n        double complex spherical_yn(long, double complex, bint)\n        double spherical_yn(long, double)\n        double spherical_yn(long, double, bint)\n\n- :py:func:`~scipy.special.spherical_in`::\n\n        double complex spherical_in(long, double complex)\n        double complex spherical_in(long, double complex, bint)\n        double spherical_in(long, double)\n        double spherical_in(long, double, bint)\n\n- :py:func:`~scipy.special.spherical_kn`::\n\n        double complex spherical_kn(long, double complex)\n        double complex spherical_kn(long, double complex, bint)\n        double spherical_kn(long, double)\n        double spherical_kn(long, double, bint)\n\n";
static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)";
static const char __pyx_k_Expected_at_least_d_argument_s_g[] = "Expected at least %d argument%s, got %d";
static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd";
static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types";
static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported";
static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short.";
static PyObject *__pyx_n_s_DeprecationWarning;
static PyObject *__pyx_kp_s_Expected_at_least_d_argument_s_g;
static PyObject *__pyx_kp_u_Format_string_allocated_too_shor;
static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2;
static PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg;
static PyObject *__pyx_n_s_ImportError;
static PyObject *__pyx_n_s_N;
static PyObject *__pyx_kp_s_No_matching_signature_found;
static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor;
static PyObject *__pyx_n_s_RuntimeError;
static PyObject *__pyx_n_s_RuntimeWarning;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_kp_s__17;
static PyObject *__pyx_kp_s__2;
static PyObject *__pyx_kp_s__3;
static PyObject *__pyx_n_s_airy;
static PyObject *__pyx_n_s_airy_pywrap;
static PyObject *__pyx_n_s_airye_pywrap;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_n_s_bdtr;
static PyObject *__pyx_n_s_bdtrc;
static PyObject *__pyx_n_s_bdtri;
static PyObject *__pyx_n_s_bench_airy_D_cy;
static PyObject *__pyx_n_s_bench_airy_D_py;
static PyObject *__pyx_n_s_bench_airy_d_cy;
static PyObject *__pyx_n_s_bench_airy_d_py;
static PyObject *__pyx_n_s_bench_beta_dd_cy;
static PyObject *__pyx_n_s_bench_beta_dd_py;
static PyObject *__pyx_n_s_bench_erf_D_cy;
static PyObject *__pyx_n_s_bench_erf_D_py;
static PyObject *__pyx_n_s_bench_erf_d_cy;
static PyObject *__pyx_n_s_bench_erf_d_py;
static PyObject *__pyx_n_s_bench_exprel_d_cy;
static PyObject *__pyx_n_s_bench_exprel_d_py;
static PyObject *__pyx_n_s_bench_gamma_D_cy;
static PyObject *__pyx_n_s_bench_gamma_D_py;
static PyObject *__pyx_n_s_bench_gamma_d_cy;
static PyObject *__pyx_n_s_bench_gamma_d_py;
static PyObject *__pyx_n_s_bench_jv_dD_cy;
static PyObject *__pyx_n_s_bench_jv_dD_py;
static PyObject *__pyx_n_s_bench_jv_dd_cy;
static PyObject *__pyx_n_s_bench_jv_dd_py;
static PyObject *__pyx_n_s_bench_loggamma_D_cy;
static PyObject *__pyx_n_s_bench_loggamma_D_py;
static PyObject *__pyx_n_s_bench_logit_d_cy;
static PyObject *__pyx_n_s_bench_logit_d_py;
static PyObject *__pyx_n_s_bench_psi_D_cy;
static PyObject *__pyx_n_s_bench_psi_D_py;
static PyObject *__pyx_n_s_bench_psi_d_cy;
static PyObject *__pyx_n_s_bench_psi_d_py;
static PyObject *__pyx_n_s_beta;
static PyObject *__pyx_n_s_cline_in_traceback;
static PyObject *__pyx_kp_s_cython_special_custom_pxi;
static PyObject *__pyx_kp_s_cython_special_pyx;
static PyObject *__pyx_n_s_dawsn;
static PyObject *__pyx_n_s_defaults;
static PyObject *__pyx_n_s_derivative;
static PyObject *__pyx_n_s_double;
static PyObject *__pyx_kp_s_double_complex;
static PyObject *__pyx_kp_s_double_double;
static PyObject *__pyx_kp_s_double_double_complex;
static PyObject *__pyx_n_s_ellipj_pywrap;
static PyObject *__pyx_n_s_erf;
static PyObject *__pyx_n_s_erfc;
static PyObject *__pyx_n_s_erfcx;
static PyObject *__pyx_n_s_erfi;
static PyObject *__pyx_n_s_eval_chebyc;
static PyObject *__pyx_n_s_eval_chebys;
static PyObject *__pyx_n_s_eval_chebyt;
static PyObject *__pyx_n_s_eval_chebyu;
static PyObject *__pyx_n_s_eval_gegenbauer;
static PyObject *__pyx_n_s_eval_genlaguerre;
static PyObject *__pyx_n_s_eval_jacobi;
static PyObject *__pyx_n_s_eval_laguerre;
static PyObject *__pyx_n_s_eval_legendre;
static PyObject *__pyx_n_s_eval_sh_chebyt;
static PyObject *__pyx_n_s_eval_sh_chebyu;
static PyObject *__pyx_n_s_eval_sh_jacobi;
static PyObject *__pyx_n_s_eval_sh_legendre;
static PyObject *__pyx_n_s_exp1;
static PyObject *__pyx_n_s_expi;
static PyObject *__pyx_n_s_expit;
static PyObject *__pyx_n_s_expm1;
static PyObject *__pyx_n_s_expn;
static PyObject *__pyx_n_s_exprel;
static PyObject *__pyx_n_s_float;
static PyObject *__pyx_n_s_fresnel_pywrap;
static PyObject *__pyx_n_s_gamma;
static PyObject *__pyx_n_s_hyp0f1;
static PyObject *__pyx_n_s_hyp1f1;
static PyObject *__pyx_n_s_hyp2f1;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_s_it2i0k0_pywrap;
static PyObject *__pyx_n_s_it2j0y0_pywrap;
static PyObject *__pyx_n_s_itairy_pywrap;
static PyObject *__pyx_n_s_iti0k0_pywrap;
static PyObject *__pyx_n_s_itj0y0_pywrap;
static PyObject *__pyx_n_s_iv;
static PyObject *__pyx_n_s_ive;
static PyObject *__pyx_n_s_jv;
static PyObject *__pyx_n_s_jve;
static PyObject *__pyx_n_s_kelvin_pywrap;
static PyObject *__pyx_n_s_kn;
static PyObject *__pyx_n_s_kv;
static PyObject *__pyx_n_s_kve;
static PyObject *__pyx_n_s_kwargs;
static PyObject *__pyx_n_s_log1p;
static PyObject *__pyx_n_s_log_ndtr;
static PyObject *__pyx_n_s_loggamma;
static PyObject *__pyx_n_s_logit;
static PyObject *__pyx_n_s_long;
static PyObject *__pyx_kp_s_long_double;
static PyObject *__pyx_kp_s_long_double_2;
static PyObject *__pyx_kp_s_long_double_complex;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_mathieu_cem_pywrap;
static PyObject *__pyx_n_s_mathieu_modcem1_pywrap;
static PyObject *__pyx_n_s_mathieu_modcem2_pywrap;
static PyObject *__pyx_n_s_mathieu_modsem1_pywrap;
static PyObject *__pyx_n_s_mathieu_modsem2_pywrap;
static PyObject *__pyx_n_s_mathieu_sem_pywrap;
static PyObject *__pyx_n_s_modfresnelm_pywrap;
static PyObject *__pyx_n_s_modfresnelp_pywrap;
static PyObject *__pyx_n_s_n;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_s_nbdtr;
static PyObject *__pyx_n_s_nbdtrc;
static PyObject *__pyx_n_s_nbdtri;
static PyObject *__pyx_n_s_ndtr;
static PyObject *__pyx_n_s_numpy;
static PyObject *__pyx_kp_u_numpy_core_multiarray_failed_to;
static PyObject *__pyx_kp_u_numpy_core_umath_failed_to_impor;
static PyObject *__pyx_n_s_obl_ang1_cv_pywrap;
static PyObject *__pyx_n_s_obl_ang1_pywrap;
static PyObject *__pyx_n_s_obl_rad1_cv_pywrap;
static PyObject *__pyx_n_s_obl_rad1_pywrap;
static PyObject *__pyx_n_s_obl_rad2_cv_pywrap;
static PyObject *__pyx_n_s_obl_rad2_pywrap;
static PyObject *__pyx_n_s_pbdv_pywrap;
static PyObject *__pyx_n_s_pbvv_pywrap;
static PyObject *__pyx_n_s_pbwa_pywrap;
static PyObject *__pyx_n_s_pdtri;
static PyObject *__pyx_n_s_pro_ang1_cv_pywrap;
static PyObject *__pyx_n_s_pro_ang1_pywrap;
static PyObject *__pyx_n_s_pro_rad1_cv_pywrap;
static PyObject *__pyx_n_s_pro_rad1_pywrap;
static PyObject *__pyx_n_s_pro_rad2_cv_pywrap;
static PyObject *__pyx_n_s_pro_rad2_pywrap;
static PyObject *__pyx_n_s_psi;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_chebyc;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_chebys;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_gegenbauer;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_genlaguerre;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_laguerre;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_legendre;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_sh_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_sh_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_sh_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_0_0eval_sh_legendre;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_chebyc;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_chebys;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_gegenbauer;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_genlaguerre;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_laguerre;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_legendre;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_sh_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_sh_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_sh_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_0_1eval_sh_legendre;
static PyObject *__pyx_n_s_pyx_fuse_0bdtr;
static PyObject *__pyx_n_s_pyx_fuse_0bdtrc;
static PyObject *__pyx_n_s_pyx_fuse_0bdtri;
static PyObject *__pyx_n_s_pyx_fuse_0dawsn;
static PyObject *__pyx_n_s_pyx_fuse_0erf;
static PyObject *__pyx_n_s_pyx_fuse_0erfc;
static PyObject *__pyx_n_s_pyx_fuse_0erfcx;
static PyObject *__pyx_n_s_pyx_fuse_0erfi;
static PyObject *__pyx_n_s_pyx_fuse_0exp1;
static PyObject *__pyx_n_s_pyx_fuse_0expi;
static PyObject *__pyx_n_s_pyx_fuse_0expit;
static PyObject *__pyx_n_s_pyx_fuse_0expm1;
static PyObject *__pyx_n_s_pyx_fuse_0expn;
static PyObject *__pyx_n_s_pyx_fuse_0gamma;
static PyObject *__pyx_n_s_pyx_fuse_0hyp0f1;
static PyObject *__pyx_n_s_pyx_fuse_0hyp1f1;
static PyObject *__pyx_n_s_pyx_fuse_0hyp2f1;
static PyObject *__pyx_n_s_pyx_fuse_0iv;
static PyObject *__pyx_n_s_pyx_fuse_0ive;
static PyObject *__pyx_n_s_pyx_fuse_0jv;
static PyObject *__pyx_n_s_pyx_fuse_0jve;
static PyObject *__pyx_n_s_pyx_fuse_0kn;
static PyObject *__pyx_n_s_pyx_fuse_0kv;
static PyObject *__pyx_n_s_pyx_fuse_0kve;
static PyObject *__pyx_n_s_pyx_fuse_0log1p;
static PyObject *__pyx_n_s_pyx_fuse_0log_ndtr;
static PyObject *__pyx_n_s_pyx_fuse_0loggamma;
static PyObject *__pyx_n_s_pyx_fuse_0logit;
static PyObject *__pyx_n_s_pyx_fuse_0nbdtr;
static PyObject *__pyx_n_s_pyx_fuse_0nbdtrc;
static PyObject *__pyx_n_s_pyx_fuse_0nbdtri;
static PyObject *__pyx_n_s_pyx_fuse_0ndtr;
static PyObject *__pyx_n_s_pyx_fuse_0pdtri;
static PyObject *__pyx_n_s_pyx_fuse_0psi;
static PyObject *__pyx_n_s_pyx_fuse_0rgamma;
static PyObject *__pyx_n_s_pyx_fuse_0smirnov;
static PyObject *__pyx_n_s_pyx_fuse_0smirnovi;
static PyObject *__pyx_n_s_pyx_fuse_0spence;
static PyObject *__pyx_n_s_pyx_fuse_0sph_harm;
static PyObject *__pyx_n_s_pyx_fuse_0spherical_in;
static PyObject *__pyx_n_s_pyx_fuse_0spherical_jn;
static PyObject *__pyx_n_s_pyx_fuse_0spherical_kn;
static PyObject *__pyx_n_s_pyx_fuse_0spherical_yn;
static PyObject *__pyx_n_s_pyx_fuse_0wrightomega;
static PyObject *__pyx_n_s_pyx_fuse_0xlog1py;
static PyObject *__pyx_n_s_pyx_fuse_0xlogy;
static PyObject *__pyx_n_s_pyx_fuse_0yn;
static PyObject *__pyx_n_s_pyx_fuse_0yv;
static PyObject *__pyx_n_s_pyx_fuse_0yve;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_chebyc;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_chebys;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_gegenbauer;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_genlaguerre;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_laguerre;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_legendre;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_sh_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_sh_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_sh_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_1_0eval_sh_legendre;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_chebyc;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_chebys;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_gegenbauer;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_genlaguerre;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_laguerre;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_legendre;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_sh_chebyt;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_sh_chebyu;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_sh_jacobi;
static PyObject *__pyx_n_s_pyx_fuse_1_1eval_sh_legendre;
static PyObject *__pyx_n_s_pyx_fuse_1bdtr;
static PyObject *__pyx_n_s_pyx_fuse_1bdtrc;
static PyObject *__pyx_n_s_pyx_fuse_1bdtri;
static PyObject *__pyx_n_s_pyx_fuse_1dawsn;
static PyObject *__pyx_n_s_pyx_fuse_1erf;
static PyObject *__pyx_n_s_pyx_fuse_1erfc;
static PyObject *__pyx_n_s_pyx_fuse_1erfcx;
static PyObject *__pyx_n_s_pyx_fuse_1erfi;
static PyObject *__pyx_n_s_pyx_fuse_1exp1;
static PyObject *__pyx_n_s_pyx_fuse_1expi;
static PyObject *__pyx_n_s_pyx_fuse_1expit;
static PyObject *__pyx_n_s_pyx_fuse_1expm1;
static PyObject *__pyx_n_s_pyx_fuse_1expn;
static PyObject *__pyx_n_s_pyx_fuse_1gamma;
static PyObject *__pyx_n_s_pyx_fuse_1hyp0f1;
static PyObject *__pyx_n_s_pyx_fuse_1hyp1f1;
static PyObject *__pyx_n_s_pyx_fuse_1hyp2f1;
static PyObject *__pyx_n_s_pyx_fuse_1iv;
static PyObject *__pyx_n_s_pyx_fuse_1ive;
static PyObject *__pyx_n_s_pyx_fuse_1jv;
static PyObject *__pyx_n_s_pyx_fuse_1jve;
static PyObject *__pyx_n_s_pyx_fuse_1kn;
static PyObject *__pyx_n_s_pyx_fuse_1kv;
static PyObject *__pyx_n_s_pyx_fuse_1kve;
static PyObject *__pyx_n_s_pyx_fuse_1log1p;
static PyObject *__pyx_n_s_pyx_fuse_1log_ndtr;
static PyObject *__pyx_n_s_pyx_fuse_1loggamma;
static PyObject *__pyx_n_s_pyx_fuse_1logit;
static PyObject *__pyx_n_s_pyx_fuse_1nbdtr;
static PyObject *__pyx_n_s_pyx_fuse_1nbdtrc;
static PyObject *__pyx_n_s_pyx_fuse_1nbdtri;
static PyObject *__pyx_n_s_pyx_fuse_1ndtr;
static PyObject *__pyx_n_s_pyx_fuse_1pdtri;
static PyObject *__pyx_n_s_pyx_fuse_1psi;
static PyObject *__pyx_n_s_pyx_fuse_1rgamma;
static PyObject *__pyx_n_s_pyx_fuse_1smirnov;
static PyObject *__pyx_n_s_pyx_fuse_1smirnovi;
static PyObject *__pyx_n_s_pyx_fuse_1spence;
static PyObject *__pyx_n_s_pyx_fuse_1sph_harm;
static PyObject *__pyx_n_s_pyx_fuse_1spherical_in;
static PyObject *__pyx_n_s_pyx_fuse_1spherical_jn;
static PyObject *__pyx_n_s_pyx_fuse_1spherical_kn;
static PyObject *__pyx_n_s_pyx_fuse_1spherical_yn;
static PyObject *__pyx_n_s_pyx_fuse_1wrightomega;
static PyObject *__pyx_n_s_pyx_fuse_1xlog1py;
static PyObject *__pyx_n_s_pyx_fuse_1xlogy;
static PyObject *__pyx_n_s_pyx_fuse_1yn;
static PyObject *__pyx_n_s_pyx_fuse_1yv;
static PyObject *__pyx_n_s_pyx_fuse_1yve;
static PyObject *__pyx_n_s_pyx_fuse_2expit;
static PyObject *__pyx_n_s_pyx_fuse_2logit;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_rgamma;
static PyObject *__pyx_n_s_s;
static PyObject *__pyx_n_s_scipy_special;
static PyObject *__pyx_n_s_scipy_special_cython_special;
static PyObject *__pyx_n_s_shichi_pywrap;
static PyObject *__pyx_n_s_sici_pywrap;
static PyObject *__pyx_n_s_signatures;
static PyObject *__pyx_n_s_smirnov;
static PyObject *__pyx_n_s_smirnovi;
static PyObject *__pyx_n_s_spence;
static PyObject *__pyx_n_s_sph_harm;
static PyObject *__pyx_n_s_spherical_in;
static PyObject *__pyx_n_s_spherical_jn;
static PyObject *__pyx_n_s_spherical_kn;
static PyObject *__pyx_n_s_spherical_yn;
static PyObject *__pyx_n_s_split;
static PyObject *__pyx_n_s_strip;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_ufuncs;
static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd;
static PyObject *__pyx_n_s_wrightomega;
static PyObject *__pyx_n_s_x0;
static PyObject *__pyx_n_s_x1;
static PyObject *__pyx_n_s_x2;
static PyObject *__pyx_n_s_x3;
static PyObject *__pyx_n_s_x4;
static PyObject *__pyx_n_s_xlog1py;
static PyObject *__pyx_n_s_xlogy;
static PyObject *__pyx_n_s_y0;
static PyObject *__pyx_n_s_y1;
static PyObject *__pyx_n_s_y2;
static PyObject *__pyx_n_s_y3;
static PyObject *__pyx_n_s_yn;
static PyObject *__pyx_n_s_yv;
static PyObject *__pyx_n_s_yve;
static PyObject *__pyx_n_s_z;
static PyObject *__pyx_pf_5scipy_7special_14cython_special_spherical_jn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_506__pyx_fuse_0spherical_jn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_508__pyx_fuse_1spherical_jn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_2spherical_yn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_512__pyx_fuse_0spherical_yn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_514__pyx_fuse_1spherical_yn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_4spherical_in(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_518__pyx_fuse_0spherical_in(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_520__pyx_fuse_1spherical_in(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_6spherical_kn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_524__pyx_fuse_0spherical_kn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_526__pyx_fuse_1spherical_kn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_8voigt_profile(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_10agm(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_12_airy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_530_airy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_532_airy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_14_airye_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_536_airye_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_538_airye_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_16bdtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_542__pyx_fuse_0bdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_544__pyx_fuse_1bdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_18bdtrc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_548__pyx_fuse_0bdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_550__pyx_fuse_1bdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_20bdtri(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_554__pyx_fuse_0bdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_556__pyx_fuse_1bdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_22bdtrik(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_24bdtrin(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_26bei(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_28beip(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_30ber(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_32berp(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_34besselpoly(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_36beta(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_38betainc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_40betaincinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_42betaln(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_44binom(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_46boxcox(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_48boxcox1p(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_50btdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_52btdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_54btdtria(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_56btdtrib(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_58cbrt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_60chdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_62chdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_64chdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_66chdtriv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_68chndtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_70chndtridf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_72chndtrinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_74chndtrix(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_76cosdg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_78cosm1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_80cotdg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_82dawsn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_560__pyx_fuse_0dawsn(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_562__pyx_fuse_1dawsn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_84ellipe(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_86ellipeinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_88_ellipj_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_90ellipkinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_92ellipkm1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_94ellipk(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_96entr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_98erf(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_566__pyx_fuse_0erf(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_568__pyx_fuse_1erf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_100erfc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_572__pyx_fuse_0erfc(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_574__pyx_fuse_1erfc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_102erfcx(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_578__pyx_fuse_0erfcx(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_580__pyx_fuse_1erfcx(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_104erfi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_584__pyx_fuse_0erfi(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_586__pyx_fuse_1erfi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_106erfinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_108erfcinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_110eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_590__pyx_fuse_0_0eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_592__pyx_fuse_0_1eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_594__pyx_fuse_1_0eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_596__pyx_fuse_1_1eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_112eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_600__pyx_fuse_0_0eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_602__pyx_fuse_0_1eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_604__pyx_fuse_1_0eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_606__pyx_fuse_1_1eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_114eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_610__pyx_fuse_0_0eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_612__pyx_fuse_0_1eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_614__pyx_fuse_1_0eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_616__pyx_fuse_1_1eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_116eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_620__pyx_fuse_0_0eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_622__pyx_fuse_0_1eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_624__pyx_fuse_1_0eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_626__pyx_fuse_1_1eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_118eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_630__pyx_fuse_0_0eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_632__pyx_fuse_0_1eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_634__pyx_fuse_1_0eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_636__pyx_fuse_1_1eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_120eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_640__pyx_fuse_0_0eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_642__pyx_fuse_0_1eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_644__pyx_fuse_1_0eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_646__pyx_fuse_1_1eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_122eval_hermite(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_124eval_hermitenorm(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_126eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_650__pyx_fuse_0_0eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_652__pyx_fuse_0_1eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_654__pyx_fuse_1_0eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_656__pyx_fuse_1_1eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_128eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_660__pyx_fuse_0_0eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_662__pyx_fuse_0_1eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_664__pyx_fuse_1_0eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_666__pyx_fuse_1_1eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_130eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_670__pyx_fuse_0_0eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_672__pyx_fuse_0_1eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_674__pyx_fuse_1_0eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_676__pyx_fuse_1_1eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_132eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_680__pyx_fuse_0_0eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_682__pyx_fuse_0_1eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_684__pyx_fuse_1_0eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_686__pyx_fuse_1_1eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_134eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_690__pyx_fuse_0_0eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_692__pyx_fuse_0_1eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_694__pyx_fuse_1_0eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_696__pyx_fuse_1_1eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_136eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_700__pyx_fuse_0_0eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_702__pyx_fuse_0_1eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_704__pyx_fuse_1_0eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_706__pyx_fuse_1_1eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_138eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_710__pyx_fuse_0_0eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_712__pyx_fuse_0_1eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_714__pyx_fuse_1_0eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_716__pyx_fuse_1_1eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_140exp1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_720__pyx_fuse_0exp1(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_722__pyx_fuse_1exp1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_142exp10(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_144exp2(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_146expi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_726__pyx_fuse_0expi(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_728__pyx_fuse_1expi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_148expit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_732__pyx_fuse_0expit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_734__pyx_fuse_1expit(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_736__pyx_fuse_2expit(CYTHON_UNUSED PyObject *__pyx_self, long double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_150expm1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_740__pyx_fuse_0expm1(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_742__pyx_fuse_1expm1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_152expn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_746__pyx_fuse_0expn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_748__pyx_fuse_1expn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_154exprel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_156fdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_158fdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_160fdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_162fdtridfd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_164_fresnel_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_752_fresnel_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_754_fresnel_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_166gamma(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_758__pyx_fuse_0gamma(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_760__pyx_fuse_1gamma(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_168gammainc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_170gammaincc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_172gammainccinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_174gammaincinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_176gammaln(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_178gammasgn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_180gdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_182gdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_184gdtria(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_186gdtrib(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_188gdtrix(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_190hankel1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_192hankel1e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_194hankel2(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_196hankel2e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_198huber(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_200hyp0f1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_764__pyx_fuse_0hyp0f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_766__pyx_fuse_1hyp0f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_202hyp1f1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_770__pyx_fuse_0hyp1f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_772__pyx_fuse_1hyp1f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_204hyp2f1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_776__pyx_fuse_0hyp2f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_778__pyx_fuse_1hyp2f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_206hyperu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_208i0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_210i0e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_212i1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_214i1e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_216inv_boxcox(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_218inv_boxcox1p(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_220_it2i0k0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_222_it2j0y0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_224it2struve0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_226_itairy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_228_iti0k0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_230_itj0y0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_232itmodstruve0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_234itstruve0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_236iv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_782__pyx_fuse_0iv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_784__pyx_fuse_1iv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_238ive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_788__pyx_fuse_0ive(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_790__pyx_fuse_1ive(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_240j0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_242j1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_244jv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_794__pyx_fuse_0jv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_796__pyx_fuse_1jv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_246jve(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_800__pyx_fuse_0jve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_802__pyx_fuse_1jve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_248k0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_250k0e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_252k1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_254k1e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_256kei(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_258keip(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_260_kelvin_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_262ker(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_264kerp(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_266kl_div(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_268kn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_806__pyx_fuse_0kn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_808__pyx_fuse_1kn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_270kolmogi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_272kolmogorov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_274kv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_812__pyx_fuse_0kv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_814__pyx_fuse_1kv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_276kve(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_818__pyx_fuse_0kve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_820__pyx_fuse_1kve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_278log1p(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_824__pyx_fuse_0log1p(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_826__pyx_fuse_1log1p(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_280log_ndtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_830__pyx_fuse_0log_ndtr(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_832__pyx_fuse_1log_ndtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_282loggamma(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_836__pyx_fuse_0loggamma(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_838__pyx_fuse_1loggamma(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_284logit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_842__pyx_fuse_0logit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_844__pyx_fuse_1logit(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_846__pyx_fuse_2logit(CYTHON_UNUSED PyObject *__pyx_self, long double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_286lpmv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_288mathieu_a(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_290mathieu_b(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_292_mathieu_cem_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_294_mathieu_modcem1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_296_mathieu_modcem2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_298_mathieu_modsem1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_300_mathieu_modsem2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_302_mathieu_sem_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_304_modfresnelm_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_306_modfresnelp_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_308modstruve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_310nbdtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_850__pyx_fuse_0nbdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_852__pyx_fuse_1nbdtr(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_312nbdtrc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_856__pyx_fuse_0nbdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_858__pyx_fuse_1nbdtrc(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_314nbdtri(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_862__pyx_fuse_0nbdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_864__pyx_fuse_1nbdtri(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_316nbdtrik(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_318nbdtrin(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_320ncfdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_322ncfdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_324ncfdtridfd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_326ncfdtridfn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_328ncfdtrinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_330nctdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_332nctdtridf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_334nctdtrinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_336nctdtrit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_338ndtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_868__pyx_fuse_0ndtr(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_870__pyx_fuse_1ndtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_340ndtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_342nrdtrimn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_344nrdtrisd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_346_obl_ang1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_348_obl_ang1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_350obl_cv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_352_obl_rad1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_354_obl_rad1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_356_obl_rad2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_358_obl_rad2_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_360owens_t(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_362_pbdv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_364_pbvv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_366_pbwa_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_368pdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_370pdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_372pdtri(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_874__pyx_fuse_0pdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_876__pyx_fuse_1pdtri(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_374pdtrik(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_376poch(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_378_pro_ang1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_380_pro_ang1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_382pro_cv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_384_pro_rad1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_386_pro_rad1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_388_pro_rad2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_390_pro_rad2_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_392pseudo_huber(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_394psi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_880__pyx_fuse_0psi(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_882__pyx_fuse_1psi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_396radian(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_398rel_entr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_400rgamma(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_886__pyx_fuse_0rgamma(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_888__pyx_fuse_1rgamma(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_402round(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_404_shichi_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_892_shichi_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_894_shichi_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_406_sici_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_898_sici_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_900_sici_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_408sindg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_410smirnov(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_904__pyx_fuse_0smirnov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_906__pyx_fuse_1smirnov(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_412smirnovi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_910__pyx_fuse_0smirnovi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_912__pyx_fuse_1smirnovi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_414spence(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_916__pyx_fuse_0spence(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_918__pyx_fuse_1spence(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_416sph_harm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_922__pyx_fuse_0sph_harm(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_924__pyx_fuse_1sph_harm(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_418stdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_420stdtridf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_422stdtrit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_424struve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_426tandg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_428tklmbda(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_430wofz(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_432wrightomega(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_928__pyx_fuse_0wrightomega(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_930__pyx_fuse_1wrightomega(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_434xlog1py(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_934__pyx_fuse_0xlog1py(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_936__pyx_fuse_1xlog1py(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_436xlogy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_940__pyx_fuse_0xlogy(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_942__pyx_fuse_1xlogy(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_438y0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_440y1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_442yn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_946__pyx_fuse_0yn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_948__pyx_fuse_1yn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_444yv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_952__pyx_fuse_0yv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_954__pyx_fuse_1yv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_446yve(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_958__pyx_fuse_0yve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_960__pyx_fuse_1yve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_448zetac(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_450_bench_airy_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_452_bench_airy_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_454_bench_airy_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_456_bench_airy_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_458_bench_beta_dd_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_460_bench_beta_dd_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_462_bench_erf_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_464_bench_erf_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_466_bench_erf_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_468_bench_erf_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_470_bench_exprel_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_472_bench_exprel_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_474_bench_gamma_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_476_bench_gamma_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_478_bench_gamma_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_480_bench_gamma_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_482_bench_jv_dd_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_484_bench_jv_dd_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_486_bench_jv_dD_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_488_bench_jv_dD_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_490_bench_loggamma_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_492_bench_loggamma_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_494_bench_logit_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_496_bench_logit_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_498_bench_psi_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_500_bench_psi_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_502_bench_psi_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_pf_5scipy_7special_14cython_special_504_bench_psi_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0); /* proto */
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_2;
static PyObject *__pyx_int_3;
static PyObject *__pyx_int_4;
static PyObject *__pyx_k_;
static int __pyx_k__6;
static int __pyx_k__7;
static PyObject *__pyx_k__8;
static int __pyx_k__9;
static int __pyx_k__10;
static PyObject *__pyx_k__11;
static int __pyx_k__12;
static int __pyx_k__13;
static PyObject *__pyx_k__14;
static int __pyx_k__15;
static int __pyx_k__16;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__5;
static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__19;
static PyObject *__pyx_tuple__20;
static PyObject *__pyx_tuple__21;
static PyObject *__pyx_tuple__22;
static PyObject *__pyx_tuple__23;
static PyObject *__pyx_tuple__25;
static PyObject *__pyx_tuple__27;
static PyObject *__pyx_tuple__29;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__33;
static PyObject *__pyx_tuple__35;
static PyObject *__pyx_tuple__37;
static PyObject *__pyx_tuple__39;
static PyObject *__pyx_tuple__41;
static PyObject *__pyx_tuple__43;
static PyObject *__pyx_tuple__45;
static PyObject *__pyx_tuple__47;
static PyObject *__pyx_tuple__49;
static PyObject *__pyx_tuple__51;
static PyObject *__pyx_tuple__53;
static PyObject *__pyx_tuple__55;
static PyObject *__pyx_tuple__57;
static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__61;
static PyObject *__pyx_tuple__63;
static PyObject *__pyx_tuple__65;
static PyObject *__pyx_tuple__67;
static PyObject *__pyx_tuple__69;
static PyObject *__pyx_tuple__71;
static PyObject *__pyx_tuple__73;
static PyObject *__pyx_tuple__75;
static PyObject *__pyx_tuple__77;
static PyObject *__pyx_tuple__79;
static PyObject *__pyx_tuple__81;
static PyObject *__pyx_tuple__83;
static PyObject *__pyx_tuple__85;
static PyObject *__pyx_tuple__87;
static PyObject *__pyx_tuple__89;
static PyObject *__pyx_tuple__91;
static PyObject *__pyx_tuple__93;
static PyObject *__pyx_tuple__95;
static PyObject *__pyx_tuple__97;
static PyObject *__pyx_tuple__99;
static PyObject *__pyx_tuple__101;
static PyObject *__pyx_tuple__103;
static PyObject *__pyx_tuple__105;
static PyObject *__pyx_tuple__107;
static PyObject *__pyx_tuple__109;
static PyObject *__pyx_tuple__111;
static PyObject *__pyx_tuple__113;
static PyObject *__pyx_tuple__115;
static PyObject *__pyx_tuple__117;
static PyObject *__pyx_tuple__119;
static PyObject *__pyx_tuple__121;
static PyObject *__pyx_tuple__123;
static PyObject *__pyx_tuple__125;
static PyObject *__pyx_tuple__127;
static PyObject *__pyx_tuple__129;
static PyObject *__pyx_tuple__131;
static PyObject *__pyx_tuple__133;
static PyObject *__pyx_tuple__135;
static PyObject *__pyx_tuple__137;
static PyObject *__pyx_tuple__139;
static PyObject *__pyx_tuple__141;
static PyObject *__pyx_tuple__143;
static PyObject *__pyx_tuple__145;
static PyObject *__pyx_tuple__147;
static PyObject *__pyx_tuple__149;
static PyObject *__pyx_tuple__151;
static PyObject *__pyx_tuple__153;
static PyObject *__pyx_tuple__155;
static PyObject *__pyx_tuple__157;
static PyObject *__pyx_tuple__159;
static PyObject *__pyx_tuple__161;
static PyObject *__pyx_tuple__163;
static PyObject *__pyx_tuple__165;
static PyObject *__pyx_tuple__167;
static PyObject *__pyx_tuple__169;
static PyObject *__pyx_tuple__171;
static PyObject *__pyx_tuple__173;
static PyObject *__pyx_tuple__175;
static PyObject *__pyx_tuple__177;
static PyObject *__pyx_tuple__179;
static PyObject *__pyx_tuple__181;
static PyObject *__pyx_tuple__183;
static PyObject *__pyx_tuple__185;
static PyObject *__pyx_tuple__187;
static PyObject *__pyx_tuple__189;
static PyObject *__pyx_tuple__191;
static PyObject *__pyx_tuple__193;
static PyObject *__pyx_tuple__195;
static PyObject *__pyx_tuple__197;
static PyObject *__pyx_tuple__199;
static PyObject *__pyx_tuple__201;
static PyObject *__pyx_tuple__203;
static PyObject *__pyx_tuple__205;
static PyObject *__pyx_tuple__207;
static PyObject *__pyx_tuple__209;
static PyObject *__pyx_tuple__211;
static PyObject *__pyx_tuple__213;
static PyObject *__pyx_tuple__215;
static PyObject *__pyx_tuple__217;
static PyObject *__pyx_tuple__219;
static PyObject *__pyx_tuple__221;
static PyObject *__pyx_tuple__223;
static PyObject *__pyx_tuple__225;
static PyObject *__pyx_tuple__227;
static PyObject *__pyx_tuple__229;
static PyObject *__pyx_tuple__231;
static PyObject *__pyx_tuple__233;
static PyObject *__pyx_tuple__235;
static PyObject *__pyx_tuple__237;
static PyObject *__pyx_tuple__239;
static PyObject *__pyx_tuple__241;
static PyObject *__pyx_tuple__243;
static PyObject *__pyx_tuple__245;
static PyObject *__pyx_tuple__247;
static PyObject *__pyx_tuple__249;
static PyObject *__pyx_tuple__251;
static PyObject *__pyx_tuple__253;
static PyObject *__pyx_tuple__255;
static PyObject *__pyx_tuple__257;
static PyObject *__pyx_tuple__259;
static PyObject *__pyx_tuple__261;
static PyObject *__pyx_tuple__263;
static PyObject *__pyx_tuple__265;
static PyObject *__pyx_tuple__267;
static PyObject *__pyx_tuple__269;
static PyObject *__pyx_tuple__271;
static PyObject *__pyx_codeobj__24;
static PyObject *__pyx_codeobj__26;
static PyObject *__pyx_codeobj__28;
static PyObject *__pyx_codeobj__30;
static PyObject *__pyx_codeobj__32;
static PyObject *__pyx_codeobj__34;
static PyObject *__pyx_codeobj__36;
static PyObject *__pyx_codeobj__38;
static PyObject *__pyx_codeobj__40;
static PyObject *__pyx_codeobj__42;
static PyObject *__pyx_codeobj__44;
static PyObject *__pyx_codeobj__46;
static PyObject *__pyx_codeobj__48;
static PyObject *__pyx_codeobj__50;
static PyObject *__pyx_codeobj__52;
static PyObject *__pyx_codeobj__54;
static PyObject *__pyx_codeobj__56;
static PyObject *__pyx_codeobj__58;
static PyObject *__pyx_codeobj__60;
static PyObject *__pyx_codeobj__62;
static PyObject *__pyx_codeobj__64;
static PyObject *__pyx_codeobj__66;
static PyObject *__pyx_codeobj__68;
static PyObject *__pyx_codeobj__70;
static PyObject *__pyx_codeobj__72;
static PyObject *__pyx_codeobj__74;
static PyObject *__pyx_codeobj__76;
static PyObject *__pyx_codeobj__78;
static PyObject *__pyx_codeobj__80;
static PyObject *__pyx_codeobj__82;
static PyObject *__pyx_codeobj__84;
static PyObject *__pyx_codeobj__86;
static PyObject *__pyx_codeobj__88;
static PyObject *__pyx_codeobj__90;
static PyObject *__pyx_codeobj__92;
static PyObject *__pyx_codeobj__94;
static PyObject *__pyx_codeobj__96;
static PyObject *__pyx_codeobj__98;
static PyObject *__pyx_codeobj__100;
static PyObject *__pyx_codeobj__102;
static PyObject *__pyx_codeobj__104;
static PyObject *__pyx_codeobj__106;
static PyObject *__pyx_codeobj__108;
static PyObject *__pyx_codeobj__110;
static PyObject *__pyx_codeobj__112;
static PyObject *__pyx_codeobj__114;
static PyObject *__pyx_codeobj__116;
static PyObject *__pyx_codeobj__118;
static PyObject *__pyx_codeobj__120;
static PyObject *__pyx_codeobj__122;
static PyObject *__pyx_codeobj__124;
static PyObject *__pyx_codeobj__126;
static PyObject *__pyx_codeobj__128;
static PyObject *__pyx_codeobj__130;
static PyObject *__pyx_codeobj__132;
static PyObject *__pyx_codeobj__134;
static PyObject *__pyx_codeobj__136;
static PyObject *__pyx_codeobj__138;
static PyObject *__pyx_codeobj__140;
static PyObject *__pyx_codeobj__142;
static PyObject *__pyx_codeobj__144;
static PyObject *__pyx_codeobj__146;
static PyObject *__pyx_codeobj__148;
static PyObject *__pyx_codeobj__150;
static PyObject *__pyx_codeobj__152;
static PyObject *__pyx_codeobj__154;
static PyObject *__pyx_codeobj__156;
static PyObject *__pyx_codeobj__158;
static PyObject *__pyx_codeobj__160;
static PyObject *__pyx_codeobj__162;
static PyObject *__pyx_codeobj__164;
static PyObject *__pyx_codeobj__166;
static PyObject *__pyx_codeobj__168;
static PyObject *__pyx_codeobj__170;
static PyObject *__pyx_codeobj__172;
static PyObject *__pyx_codeobj__174;
static PyObject *__pyx_codeobj__176;
static PyObject *__pyx_codeobj__178;
static PyObject *__pyx_codeobj__180;
static PyObject *__pyx_codeobj__182;
static PyObject *__pyx_codeobj__184;
static PyObject *__pyx_codeobj__186;
static PyObject *__pyx_codeobj__188;
static PyObject *__pyx_codeobj__190;
static PyObject *__pyx_codeobj__192;
static PyObject *__pyx_codeobj__194;
static PyObject *__pyx_codeobj__196;
static PyObject *__pyx_codeobj__198;
static PyObject *__pyx_codeobj__200;
static PyObject *__pyx_codeobj__202;
static PyObject *__pyx_codeobj__204;
static PyObject *__pyx_codeobj__206;
static PyObject *__pyx_codeobj__208;
static PyObject *__pyx_codeobj__210;
static PyObject *__pyx_codeobj__212;
static PyObject *__pyx_codeobj__214;
static PyObject *__pyx_codeobj__216;
static PyObject *__pyx_codeobj__218;
static PyObject *__pyx_codeobj__220;
static PyObject *__pyx_codeobj__222;
static PyObject *__pyx_codeobj__224;
static PyObject *__pyx_codeobj__226;
static PyObject *__pyx_codeobj__228;
static PyObject *__pyx_codeobj__230;
static PyObject *__pyx_codeobj__232;
static PyObject *__pyx_codeobj__234;
static PyObject *__pyx_codeobj__236;
static PyObject *__pyx_codeobj__238;
static PyObject *__pyx_codeobj__240;
static PyObject *__pyx_codeobj__242;
static PyObject *__pyx_codeobj__244;
static PyObject *__pyx_codeobj__246;
static PyObject *__pyx_codeobj__248;
static PyObject *__pyx_codeobj__250;
static PyObject *__pyx_codeobj__252;
static PyObject *__pyx_codeobj__254;
static PyObject *__pyx_codeobj__256;
static PyObject *__pyx_codeobj__258;
static PyObject *__pyx_codeobj__260;
static PyObject *__pyx_codeobj__262;
static PyObject *__pyx_codeobj__264;
static PyObject *__pyx_codeobj__266;
static PyObject *__pyx_codeobj__268;
static PyObject *__pyx_codeobj__270;
static PyObject *__pyx_codeobj__272;
/* Late includes */

/* "_cython_special.pxi":13
 *     int PyUFunc_getfperr() nogil
 * 
 * cdef public int wrap_PyUFunc_getfperr() nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Call PyUFunc_getfperr in a context where PyUFunc_API array is initialized;
 */

int wrap_PyUFunc_getfperr(void) {
  int __pyx_r;

  /* "_cython_special.pxi":18
 *     this avoids messing with the UNIQUE_SYMBOL #defines
 *     """
 *     return PyUFunc_getfperr()             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "numpy/npy_math.h":
 */
  __pyx_r = PyUFunc_getfperr();
  goto __pyx_L0;

  /* "_cython_special.pxi":13
 *     int PyUFunc_getfperr() nogil
 * 
 * cdef public int wrap_PyUFunc_getfperr() nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Call PyUFunc_getfperr in a context where PyUFunc_API array is initialized;
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_cython_special_custom.pxi":4
 * 
 * 
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_1spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_spherical_jn[] = "See the documentation for scipy.special.spherical_jn";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_1spherical_jn = {"spherical_jn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_1spherical_jn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_spherical_jn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_1spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k_;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 4, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 4, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 4, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_spherical_jn(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_spherical_jn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("spherical_jn", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 4, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 4, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 4, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_z, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 4, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_z); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 4, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 4, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 4, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 4, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 4, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 4, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 4, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 4, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 4, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 4, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_507__pyx_fuse_0spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_1spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_jn(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__6;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":6
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_jn_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":9
 *         if number_t is double:
 *             return _spherical_bessel.spherical_jn_d_real(n, z)
 *         return _spherical_bessel.spherical_jn_d_complex(n, z)             # <<<<<<<<<<<<<<
 * 
 *     if number_t is double:
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_d_complex(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":6
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_jn_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":13
 *     if number_t is double:
 *         return _spherical_bessel.spherical_jn_real(n, z)
 *     return _spherical_bessel.spherical_jn_complex(n, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_complex(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":4
 * 
 * 
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_507__pyx_fuse_0spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_507__pyx_fuse_0spherical_jn = {"__pyx_fuse_0spherical_jn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_507__pyx_fuse_0spherical_jn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_spherical_jn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_507__pyx_fuse_0spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  __pyx_t_double_complex __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_jn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_jn", 0, 2, 3, 1); __PYX_ERR(0, 4, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0spherical_jn") < 0)) __PYX_ERR(0, 4, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 4, __pyx_L3_error)
    __pyx_v_z = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__6;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_jn", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_jn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_506__pyx_fuse_0spherical_jn(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_506__pyx_fuse_0spherical_jn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_jn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_jn(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_jn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_509__pyx_fuse_1spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_1spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_jn(long __pyx_v_n, double __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__7;
  double __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":6
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_jn_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":8
 *     if derivative:
 *         if number_t is double:
 *             return _spherical_bessel.spherical_jn_d_real(n, z)             # <<<<<<<<<<<<<<
 *         return _spherical_bessel.spherical_jn_d_complex(n, z)
 * 
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_d_real(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":6
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_jn_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":12
 * 
 *     if number_t is double:
 *         return _spherical_bessel.spherical_jn_real(n, z)             # <<<<<<<<<<<<<<
 *     return _spherical_bessel.spherical_jn_complex(n, z)
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_real(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":4
 * 
 * 
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_509__pyx_fuse_1spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_509__pyx_fuse_1spherical_jn = {"__pyx_fuse_1spherical_jn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_509__pyx_fuse_1spherical_jn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_spherical_jn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_509__pyx_fuse_1spherical_jn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  double __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_jn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_jn", 0, 2, 3, 1); __PYX_ERR(0, 4, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1spherical_jn") < 0)) __PYX_ERR(0, 4, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 4, __pyx_L3_error)
    __pyx_v_z = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__7;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_jn", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_jn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_508__pyx_fuse_1spherical_jn(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_508__pyx_fuse_1spherical_jn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_jn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_jn(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_jn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "_cython_special_custom.pxi":16
 * 
 * 
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_3spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_2spherical_yn[] = "See the documentation for scipy.special.spherical_yn";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_3spherical_yn = {"spherical_yn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_3spherical_yn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_2spherical_yn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_3spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k__8;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 16, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 16, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 16, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_2spherical_yn(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_2spherical_yn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("spherical_yn", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 16, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 16, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 16, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 16, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_z, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 16, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 16, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_z); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 16, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 16, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 16, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 16, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 16, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 16, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 16, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 16, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 16, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 16, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 16, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 16, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 16, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 16, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_513__pyx_fuse_0spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_3spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_yn(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__9;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":18
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_yn_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":21
 *         if number_t is double:
 *             return _spherical_bessel.spherical_yn_d_real(n, z)
 *         return _spherical_bessel.spherical_yn_d_complex(n, z)             # <<<<<<<<<<<<<<
 * 
 *     if number_t is double:
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_d_complex(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":18
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_yn_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":25
 *     if number_t is double:
 *         return _spherical_bessel.spherical_yn_real(n, z)
 *     return _spherical_bessel.spherical_yn_complex(n, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_complex(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":16
 * 
 * 
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_513__pyx_fuse_0spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_513__pyx_fuse_0spherical_yn = {"__pyx_fuse_0spherical_yn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_513__pyx_fuse_0spherical_yn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_2spherical_yn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_513__pyx_fuse_0spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  __pyx_t_double_complex __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_yn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_yn", 0, 2, 3, 1); __PYX_ERR(0, 16, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0spherical_yn") < 0)) __PYX_ERR(0, 16, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
    __pyx_v_z = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__9;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_yn", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_512__pyx_fuse_0spherical_yn(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_512__pyx_fuse_0spherical_yn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_yn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_yn(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_515__pyx_fuse_1spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_3spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_yn(long __pyx_v_n, double __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__10;
  double __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":18
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_yn_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":20
 *     if derivative:
 *         if number_t is double:
 *             return _spherical_bessel.spherical_yn_d_real(n, z)             # <<<<<<<<<<<<<<
 *         return _spherical_bessel.spherical_yn_d_complex(n, z)
 * 
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_d_real(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":18
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_yn_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":24
 * 
 *     if number_t is double:
 *         return _spherical_bessel.spherical_yn_real(n, z)             # <<<<<<<<<<<<<<
 *     return _spherical_bessel.spherical_yn_complex(n, z)
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_real(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":16
 * 
 * 
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_515__pyx_fuse_1spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_515__pyx_fuse_1spherical_yn = {"__pyx_fuse_1spherical_yn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_515__pyx_fuse_1spherical_yn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_2spherical_yn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_515__pyx_fuse_1spherical_yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  double __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_yn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_yn", 0, 2, 3, 1); __PYX_ERR(0, 16, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1spherical_yn") < 0)) __PYX_ERR(0, 16, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
    __pyx_v_z = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__10;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_yn", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 16, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_514__pyx_fuse_1spherical_yn(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_514__pyx_fuse_1spherical_yn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_yn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_yn(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "_cython_special_custom.pxi":28
 * 
 * 
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_5spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_4spherical_in[] = "See the documentation for scipy.special.spherical_in";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_5spherical_in = {"spherical_in", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_5spherical_in, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_4spherical_in};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_5spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k__11;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 28, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 28, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 28, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 28, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_4spherical_in(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_4spherical_in(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("spherical_in", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 28, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 28, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 28, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 28, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 28, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_z, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 28, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 28, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_z); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 28, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 28, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 28, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 28, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 28, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 28, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 28, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 28, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 28, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 28, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 28, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 28, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 28, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 28, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 28, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 28, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_519__pyx_fuse_0spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_5spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_in(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_in *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__12;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":30
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_in_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":33
 *         if number_t is double:
 *             return _spherical_bessel.spherical_in_d_real(n, z)
 *         return _spherical_bessel.spherical_in_d_complex(n, z)             # <<<<<<<<<<<<<<
 * 
 *     if number_t is double:
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_d_complex(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":30
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_in_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":37
 *     if number_t is double:
 *         return _spherical_bessel.spherical_in_real(n, z)
 *     return _spherical_bessel.spherical_in_complex(n, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_complex(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":28
 * 
 * 
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_519__pyx_fuse_0spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_519__pyx_fuse_0spherical_in = {"__pyx_fuse_0spherical_in", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_519__pyx_fuse_0spherical_in, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_4spherical_in};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_519__pyx_fuse_0spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  __pyx_t_double_complex __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_in (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_in", 0, 2, 3, 1); __PYX_ERR(0, 28, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0spherical_in") < 0)) __PYX_ERR(0, 28, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
    __pyx_v_z = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__12;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_in", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 28, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_in", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_518__pyx_fuse_0spherical_in(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_518__pyx_fuse_0spherical_in(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_in __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_in", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_in(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_in", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_521__pyx_fuse_1spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_5spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_in(long __pyx_v_n, double __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_in *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__13;
  double __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":30
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_in_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":32
 *     if derivative:
 *         if number_t is double:
 *             return _spherical_bessel.spherical_in_d_real(n, z)             # <<<<<<<<<<<<<<
 *         return _spherical_bessel.spherical_in_d_complex(n, z)
 * 
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_d_real(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":30
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_in_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":36
 * 
 *     if number_t is double:
 *         return _spherical_bessel.spherical_in_real(n, z)             # <<<<<<<<<<<<<<
 *     return _spherical_bessel.spherical_in_complex(n, z)
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_real(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":28
 * 
 * 
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_521__pyx_fuse_1spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_521__pyx_fuse_1spherical_in = {"__pyx_fuse_1spherical_in", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_521__pyx_fuse_1spherical_in, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_4spherical_in};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_521__pyx_fuse_1spherical_in(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  double __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_in (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_in", 0, 2, 3, 1); __PYX_ERR(0, 28, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1spherical_in") < 0)) __PYX_ERR(0, 28, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
    __pyx_v_z = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__13;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_in", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 28, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_in", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_520__pyx_fuse_1spherical_in(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_520__pyx_fuse_1spherical_in(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_in __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_in", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_in(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_in", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "_cython_special_custom.pxi":40
 * 
 * 
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_7spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_6spherical_kn[] = "See the documentation for scipy.special.spherical_kn";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_7spherical_kn = {"spherical_kn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_7spherical_kn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_6spherical_kn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_7spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k__14;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 40, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 40, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 40, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 40, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_6spherical_kn(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_6spherical_kn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("spherical_kn", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 40, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 40, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 40, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 40, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 40, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_z, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 40, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 40, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_z); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 40, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 40, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 40, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 40, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 40, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 40, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 40, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 40, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 40, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 40, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 40, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 40, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 40, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 40, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 40, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_525__pyx_fuse_0spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_7spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_kn(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__15;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":42
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_kn_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":45
 *         if number_t is double:
 *             return _spherical_bessel.spherical_kn_d_real(n, z)
 *         return _spherical_bessel.spherical_kn_d_complex(n, z)             # <<<<<<<<<<<<<<
 * 
 *     if number_t is double:
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_d_complex(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":42
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_kn_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":49
 *     if number_t is double:
 *         return _spherical_bessel.spherical_kn_real(n, z)
 *     return _spherical_bessel.spherical_kn_complex(n, z)             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_complex(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":40
 * 
 * 
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_525__pyx_fuse_0spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_525__pyx_fuse_0spherical_kn = {"__pyx_fuse_0spherical_kn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_525__pyx_fuse_0spherical_kn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_6spherical_kn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_525__pyx_fuse_0spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  __pyx_t_double_complex __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_kn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_kn", 0, 2, 3, 1); __PYX_ERR(0, 40, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0spherical_kn") < 0)) __PYX_ERR(0, 40, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
    __pyx_v_z = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__15;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0spherical_kn", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 40, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_524__pyx_fuse_0spherical_kn(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_524__pyx_fuse_0spherical_kn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __pyx_t_double_complex __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0spherical_kn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_kn(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spherical_kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_527__pyx_fuse_1spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_7spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_kn(long __pyx_v_n, double __pyx_v_z, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn *__pyx_optional_args) {
  int __pyx_v_derivative = __pyx_k__16;
  double __pyx_r;
  int __pyx_t_1;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_derivative = __pyx_optional_args->derivative;
    }
  }

  /* "_cython_special_custom.pxi":42
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_kn_d_real(n, z)
 */
  __pyx_t_1 = (__pyx_v_derivative != 0);
  if (__pyx_t_1) {

    /* "_cython_special_custom.pxi":44
 *     if derivative:
 *         if number_t is double:
 *             return _spherical_bessel.spherical_kn_d_real(n, z)             # <<<<<<<<<<<<<<
 *         return _spherical_bessel.spherical_kn_d_complex(n, z)
 * 
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_d_real(__pyx_v_n, __pyx_v_z);
    goto __pyx_L0;

    /* "_cython_special_custom.pxi":42
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:             # <<<<<<<<<<<<<<
 *         if number_t is double:
 *             return _spherical_bessel.spherical_kn_d_real(n, z)
 */
  }

  /* "_cython_special_custom.pxi":48
 * 
 *     if number_t is double:
 *         return _spherical_bessel.spherical_kn_real(n, z)             # <<<<<<<<<<<<<<
 *     return _spherical_bessel.spherical_kn_complex(n, z)
 */
  __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_real(__pyx_v_n, __pyx_v_z);
  goto __pyx_L0;

  /* "_cython_special_custom.pxi":40
 * 
 * 
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_527__pyx_fuse_1spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_527__pyx_fuse_1spherical_kn = {"__pyx_fuse_1spherical_kn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_527__pyx_fuse_1spherical_kn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_6spherical_kn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_527__pyx_fuse_1spherical_kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_n;
  double __pyx_v_z;
  int __pyx_v_derivative;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_kn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_z,&__pyx_n_s_derivative,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_kn", 0, 2, 3, 1); __PYX_ERR(0, 40, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_derivative);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1spherical_kn") < 0)) __PYX_ERR(0, 40, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
    __pyx_v_z = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_derivative = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_derivative == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 40, __pyx_L3_error)
    } else {
      __pyx_v_derivative = __pyx_k__16;
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1spherical_kn", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 40, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_526__pyx_fuse_1spherical_kn(__pyx_self, __pyx_v_n, __pyx_v_z, __pyx_v_derivative);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_526__pyx_fuse_1spherical_kn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, double __pyx_v_z, int __pyx_v_derivative) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1spherical_kn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.derivative = __pyx_v_derivative;
  __pyx_t_1 = __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_kn(__pyx_v_n, __pyx_v_z, 0, &__pyx_t_2); 
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spherical_kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1699
 *     cdef npy_double _func_zetac "zetac"(npy_double)nogil
 * 
 * cpdef double voigt_profile(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.voigt_profile"""
 *     return (<double(*)(double, double, double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_voigt_profile)(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_9voigt_profile(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_voigt_profile(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1701
 * cpdef double voigt_profile(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.voigt_profile"""
 *     return (<double(*)(double, double, double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_voigt_profile)(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double agm(double x0, double x1) nogil:
 */
  __pyx_r = ((double (*)(double, double, double))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_voigt_profile)(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1699
 *     cdef npy_double _func_zetac "zetac"(npy_double)nogil
 * 
 * cpdef double voigt_profile(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.voigt_profile"""
 *     return (<double(*)(double, double, double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_voigt_profile)(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_9voigt_profile(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_8voigt_profile[] = "See the documentation for scipy.special.voigt_profile";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_9voigt_profile(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("voigt_profile (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("voigt_profile", 1, 3, 3, 1); __PYX_ERR(1, 1699, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("voigt_profile", 1, 3, 3, 2); __PYX_ERR(1, 1699, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "voigt_profile") < 0)) __PYX_ERR(1, 1699, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1699, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1699, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1699, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("voigt_profile", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1699, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.voigt_profile", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_8voigt_profile(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_8voigt_profile(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("voigt_profile", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_voigt_profile(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.voigt_profile", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1703
 *     return (<double(*)(double, double, double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_voigt_profile)(x0, x1, x2)
 * 
 * cpdef double agm(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.agm"""
 *     return _func_agm(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_11agm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_agm(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1705
 * cpdef double agm(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.agm"""
 *     return _func_agm(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cdef void airy(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_4_agm_agm(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1703
 *     return (<double(*)(double, double, double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_voigt_profile)(x0, x1, x2)
 * 
 * cpdef double agm(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.agm"""
 *     return _func_agm(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_11agm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_10agm[] = "See the documentation for scipy.special.agm";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_11agm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("agm (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("agm", 1, 2, 2, 1); __PYX_ERR(1, 1703, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "agm") < 0)) __PYX_ERR(1, 1703, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1703, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1703, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("agm", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1703, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.agm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_10agm(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_10agm(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("agm", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_agm(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.agm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1707
 *     return _func_agm(x0, x1)
 * 
 * cdef void airy(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.airy"""
 *     cdef npy_cdouble tmp0
 */

static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airy(__pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1, __pyx_t_double_complex *__pyx_v_y2, __pyx_t_double_complex *__pyx_v_y3) {
  npy_cdouble __pyx_v_tmp0;
  npy_cdouble __pyx_v_tmp1;
  npy_cdouble __pyx_v_tmp2;
  npy_cdouble __pyx_v_tmp3;

  /* "scipy/special/cython_special.pyx":1716
 *         _func_airy_wrap(x0, y0, y1, y2, y3)
 *     elif Dd_number_t is double_complex:
 *         _func_cairy_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1, &tmp2, &tmp3)             # <<<<<<<<<<<<<<
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 */
  (void)(cairy_wrap(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x0), (&__pyx_v_tmp0), (&__pyx_v_tmp1), (&__pyx_v_tmp2), (&__pyx_v_tmp3)));

  /* "scipy/special/cython_special.pyx":1717
 *     elif Dd_number_t is double_complex:
 *         _func_cairy_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1, &tmp2, &tmp3)
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)             # <<<<<<<<<<<<<<
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 */
  (__pyx_v_y0[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp0);

  /* "scipy/special/cython_special.pyx":1718
 *         _func_cairy_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1, &tmp2, &tmp3)
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)             # <<<<<<<<<<<<<<
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 *         y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 */
  (__pyx_v_y1[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp1);

  /* "scipy/special/cython_special.pyx":1719
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)             # <<<<<<<<<<<<<<
 *         y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 *     else:
 */
  (__pyx_v_y2[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp2);

  /* "scipy/special/cython_special.pyx":1720
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 *         y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  (__pyx_v_y3[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp3);

  /* "scipy/special/cython_special.pyx":1707
 *     return _func_agm(x0, x1)
 * 
 * cdef void airy(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.airy"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airy(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1, double *__pyx_v_y2, double *__pyx_v_y3) {

  /* "scipy/special/cython_special.pyx":1714
 *     cdef npy_cdouble tmp3
 *     if Dd_number_t is double:
 *         _func_airy_wrap(x0, y0, y1, y2, y3)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         _func_cairy_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1, &tmp2, &tmp3)
 */
  (void)(airy_wrap(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1, __pyx_v_y2, __pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1707
 *     return _func_agm(x0, x1)
 * 
 * cdef void airy(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.airy"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":1733
 *             y3[0] = NPY_NAN
 * 
 * def _airy_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_13_airy_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_13_airy_pywrap = {"_airy_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_13_airy_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_13_airy_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1733, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1733, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1733, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1733, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1733, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_12_airy_pywrap(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_12_airy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_airy_pywrap", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1733, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1733, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1733, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1733, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1733, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1733, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1733, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1733, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1733, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1733, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1733, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1733, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1733, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1733, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1733, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1733, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1733, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1733, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1733, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1733, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_531_airy_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_531_airy_pywrap = {"__pyx_fuse_0_airy_pywrap", (PyCFunction)__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_531_airy_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_531_airy_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_airy_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1733, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._airy_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_530_airy_pywrap(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_530_airy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  __pyx_t_double_complex __pyx_v_y2;
  __pyx_t_double_complex __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_airy_pywrap", 0);

  /* "scipy/special/cython_special.pyx":1738
 *     cdef Dd_number_t y2
 *     cdef Dd_number_t y3
 *     airy(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 *     return y0, y1, y2, y3
 * 
 */
  __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airy(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1739
 *     cdef Dd_number_t y3
 *     airy(x0, &y0, &y1, &y2, &y3)
 *     return y0, y1, y2, y3             # <<<<<<<<<<<<<<
 * 
 * cdef void airye(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_PyComplex_FromComplex(__pyx_v_y2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_PyComplex_FromComplex(__pyx_v_y3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1733
 *             y3[0] = NPY_NAN
 * 
 * def _airy_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("scipy.special.cython_special._airy_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_533_airy_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_533_airy_pywrap = {"__pyx_fuse_1_airy_pywrap", (PyCFunction)__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_533_airy_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_533_airy_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_airy_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1733, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._airy_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_532_airy_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_532_airy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  double __pyx_v_y2;
  double __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_airy_pywrap", 0);

  /* "scipy/special/cython_special.pyx":1738
 *     cdef Dd_number_t y2
 *     cdef Dd_number_t y3
 *     airy(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 *     return y0, y1, y2, y3
 * 
 */
  __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airy(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1739
 *     cdef Dd_number_t y3
 *     airy(x0, &y0, &y1, &y2, &y3)
 *     return y0, y1, y2, y3             # <<<<<<<<<<<<<<
 * 
 * cdef void airye(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_y3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1733
 *             y3[0] = NPY_NAN
 * 
 * def _airy_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("scipy.special.cython_special._airy_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1741
 *     return y0, y1, y2, y3
 * 
 * cdef void airye(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.airye"""
 *     cdef npy_cdouble tmp0
 */

static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airye(__pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1, __pyx_t_double_complex *__pyx_v_y2, __pyx_t_double_complex *__pyx_v_y3) {
  npy_cdouble __pyx_v_tmp0;
  npy_cdouble __pyx_v_tmp1;
  npy_cdouble __pyx_v_tmp2;
  npy_cdouble __pyx_v_tmp3;

  /* "scipy/special/cython_special.pyx":1748
 *     cdef npy_cdouble tmp3
 *     if Dd_number_t is double_complex:
 *         _func_cairy_wrap_e(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1, &tmp2, &tmp3)             # <<<<<<<<<<<<<<
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 */
  (void)(cairy_wrap_e(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x0), (&__pyx_v_tmp0), (&__pyx_v_tmp1), (&__pyx_v_tmp2), (&__pyx_v_tmp3)));

  /* "scipy/special/cython_special.pyx":1749
 *     if Dd_number_t is double_complex:
 *         _func_cairy_wrap_e(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1, &tmp2, &tmp3)
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)             # <<<<<<<<<<<<<<
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 */
  (__pyx_v_y0[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp0);

  /* "scipy/special/cython_special.pyx":1750
 *         _func_cairy_wrap_e(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1, &tmp2, &tmp3)
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)             # <<<<<<<<<<<<<<
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 *         y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 */
  (__pyx_v_y1[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp1);

  /* "scipy/special/cython_special.pyx":1751
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)             # <<<<<<<<<<<<<<
 *         y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 *     elif Dd_number_t is double:
 */
  (__pyx_v_y2[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp2);

  /* "scipy/special/cython_special.pyx":1752
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *         y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 *         y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         _func_cairy_wrap_e_real(x0, y0, y1, y2, y3)
 */
  (__pyx_v_y3[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp3);

  /* "scipy/special/cython_special.pyx":1741
 *     return y0, y1, y2, y3
 * 
 * cdef void airye(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.airye"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airye(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1, double *__pyx_v_y2, double *__pyx_v_y3) {

  /* "scipy/special/cython_special.pyx":1754
 *         y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 *     elif Dd_number_t is double:
 *         _func_cairy_wrap_e_real(x0, y0, y1, y2, y3)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  (void)(cairy_wrap_e_real(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1, __pyx_v_y2, __pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1741
 *     return y0, y1, y2, y3
 * 
 * cdef void airye(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1, Dd_number_t *y2, Dd_number_t *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.airye"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":1767
 *             y3[0] = NPY_NAN
 * 
 * def _airye_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_15_airye_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_15_airye_pywrap = {"_airye_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_15_airye_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_15_airye_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1767, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1767, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1767, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1767, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1767, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_14_airye_pywrap(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_14_airye_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_airye_pywrap", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1767, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1767, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1767, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1767, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1767, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1767, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1767, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1767, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1767, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1767, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1767, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1767, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1767, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1767, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1767, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1767, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1767, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1767, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1767, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1767, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_537_airye_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_537_airye_pywrap = {"__pyx_fuse_0_airye_pywrap", (PyCFunction)__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_537_airye_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_537_airye_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_airye_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1767, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._airye_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_536_airye_pywrap(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_536_airye_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  __pyx_t_double_complex __pyx_v_y2;
  __pyx_t_double_complex __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_airye_pywrap", 0);

  /* "scipy/special/cython_special.pyx":1772
 *     cdef Dd_number_t y2
 *     cdef Dd_number_t y3
 *     airye(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 *     return y0, y1, y2, y3
 * 
 */
  __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airye(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1773
 *     cdef Dd_number_t y3
 *     airye(x0, &y0, &y1, &y2, &y3)
 *     return y0, y1, y2, y3             # <<<<<<<<<<<<<<
 * 
 * cpdef double bdtr(double x0, dl_number_t x1, double x2) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_PyComplex_FromComplex(__pyx_v_y2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_PyComplex_FromComplex(__pyx_v_y3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1767
 *             y3[0] = NPY_NAN
 * 
 * def _airye_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("scipy.special.cython_special._airye_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_539_airye_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_539_airye_pywrap = {"__pyx_fuse_1_airye_pywrap", (PyCFunction)__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_539_airye_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_539_airye_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_airye_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1767, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._airye_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_538_airye_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_538_airye_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  double __pyx_v_y2;
  double __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_airye_pywrap", 0);

  /* "scipy/special/cython_special.pyx":1772
 *     cdef Dd_number_t y2
 *     cdef Dd_number_t y3
 *     airye(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 *     return y0, y1, y2, y3
 * 
 */
  __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airye(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1773
 *     cdef Dd_number_t y3
 *     airye(x0, &y0, &y1, &y2, &y3)
 *     return y0, y1, y2, y3             # <<<<<<<<<<<<<<
 * 
 * cpdef double bdtr(double x0, dl_number_t x1, double x2) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_y3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1767
 *             y3[0] = NPY_NAN
 * 
 * def _airye_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("scipy.special.cython_special._airye_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1775
 *     return y0, y1, y2, y3
 * 
 * cpdef double bdtr(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtr"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_17bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_16bdtr[] = "See the documentation for scipy.special.bdtr";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_17bdtr = {"bdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_17bdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_16bdtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_17bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1775, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1775, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1775, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_16bdtr(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_16bdtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bdtr", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1775, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1775, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1775, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1775, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1775, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1775, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1775, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1775, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1775, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1775, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1775, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1775, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1775, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1775, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1775, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1775, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1775, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1775, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1775, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1775, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1775, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_543__pyx_fuse_0bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_17bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1778
 *     """See the documentation for scipy.special.bdtr"""
 *     if dl_number_t is double:
 *         return _func_bdtr_unsafe(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_bdtr(x0, x1, x2)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_bdtr_unsafe(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1775
 *     return y0, y1, y2, y3
 * 
 * cpdef double bdtr(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtr"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_543__pyx_fuse_0bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_543__pyx_fuse_0bdtr = {"__pyx_fuse_0bdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_543__pyx_fuse_0bdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_16bdtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_543__pyx_fuse_0bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0bdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtr", 1, 3, 3, 1); __PYX_ERR(1, 1775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtr", 1, 3, 3, 2); __PYX_ERR(1, 1775, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0bdtr") < 0)) __PYX_ERR(1, 1775, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1775, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1775, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1775, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1775, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0bdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_542__pyx_fuse_0bdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_542__pyx_fuse_0bdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0bdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0bdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_545__pyx_fuse_1bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_17bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtr(double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1780
 *         return _func_bdtr_unsafe(x0, x1, x2)
 *     elif dl_number_t is long:
 *         return _func_bdtr(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = bdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1775
 *     return y0, y1, y2, y3
 * 
 * cpdef double bdtr(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtr"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_545__pyx_fuse_1bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_545__pyx_fuse_1bdtr = {"__pyx_fuse_1bdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_545__pyx_fuse_1bdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_16bdtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_545__pyx_fuse_1bdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  long __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1bdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtr", 1, 3, 3, 1); __PYX_ERR(1, 1775, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtr", 1, 3, 3, 2); __PYX_ERR(1, 1775, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1bdtr") < 0)) __PYX_ERR(1, 1775, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1775, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_x1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1775, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1775, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1775, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1bdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_544__pyx_fuse_1bdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_544__pyx_fuse_1bdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1bdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1bdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1784
 *         return NPY_NAN
 * 
 * cpdef double bdtrc(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrc"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_19bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_18bdtrc[] = "See the documentation for scipy.special.bdtrc";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_19bdtrc = {"bdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_19bdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_18bdtrc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_19bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1784, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1784, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1784, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1784, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1784, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_18bdtrc(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_18bdtrc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bdtrc", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1784, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1784, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1784, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1784, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1784, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1784, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1784, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1784, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1784, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1784, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1784, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1784, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1784, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1784, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1784, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1784, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1784, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1784, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1784, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1784, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_549__pyx_fuse_0bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_19bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtrc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1787
 *     """See the documentation for scipy.special.bdtrc"""
 *     if dl_number_t is double:
 *         return _func_bdtrc_unsafe(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_bdtrc(x0, x1, x2)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_bdtrc_unsafe(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1784
 *         return NPY_NAN
 * 
 * cpdef double bdtrc(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrc"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_549__pyx_fuse_0bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_549__pyx_fuse_0bdtrc = {"__pyx_fuse_0bdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_549__pyx_fuse_0bdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_18bdtrc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_549__pyx_fuse_0bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0bdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtrc", 1, 3, 3, 1); __PYX_ERR(1, 1784, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtrc", 1, 3, 3, 2); __PYX_ERR(1, 1784, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0bdtrc") < 0)) __PYX_ERR(1, 1784, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1784, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1784, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1784, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtrc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1784, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0bdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_548__pyx_fuse_0bdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_548__pyx_fuse_0bdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0bdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0bdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_551__pyx_fuse_1bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_19bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtrc(double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1789
 *         return _func_bdtrc_unsafe(x0, x1, x2)
 *     elif dl_number_t is long:
 *         return _func_bdtrc(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = bdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1784
 *         return NPY_NAN
 * 
 * cpdef double bdtrc(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrc"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_551__pyx_fuse_1bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_551__pyx_fuse_1bdtrc = {"__pyx_fuse_1bdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_551__pyx_fuse_1bdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_18bdtrc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_551__pyx_fuse_1bdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  long __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1bdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtrc", 1, 3, 3, 1); __PYX_ERR(1, 1784, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtrc", 1, 3, 3, 2); __PYX_ERR(1, 1784, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1bdtrc") < 0)) __PYX_ERR(1, 1784, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1784, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_x1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1784, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1784, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtrc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1784, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1bdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_550__pyx_fuse_1bdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_550__pyx_fuse_1bdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1bdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1bdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1793
 *         return NPY_NAN
 * 
 * cpdef double bdtri(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtri"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_21bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_20bdtri[] = "See the documentation for scipy.special.bdtri";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_21bdtri = {"bdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_21bdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_20bdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_21bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1793, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1793, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1793, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_20bdtri(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_20bdtri(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bdtri", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1793, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1793, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1793, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1793, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1793, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1793, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1793, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1793, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1793, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1793, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1793, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1793, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1793, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1793, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1793, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1793, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1793, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1793, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1793, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1793, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_555__pyx_fuse_0bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_21bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtri(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1796
 *     """See the documentation for scipy.special.bdtri"""
 *     if dl_number_t is double:
 *         return _func_bdtri_unsafe(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_bdtri(x0, x1, x2)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_bdtri_unsafe(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1793
 *         return NPY_NAN
 * 
 * cpdef double bdtri(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtri"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_555__pyx_fuse_0bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_555__pyx_fuse_0bdtri = {"__pyx_fuse_0bdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_555__pyx_fuse_0bdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_20bdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_555__pyx_fuse_0bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0bdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtri", 1, 3, 3, 1); __PYX_ERR(1, 1793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtri", 1, 3, 3, 2); __PYX_ERR(1, 1793, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0bdtri") < 0)) __PYX_ERR(1, 1793, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1793, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1793, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1793, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0bdtri", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1793, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0bdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_554__pyx_fuse_0bdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_554__pyx_fuse_0bdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0bdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0bdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_557__pyx_fuse_1bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_21bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtri(double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1798
 *         return _func_bdtri_unsafe(x0, x1, x2)
 *     elif dl_number_t is long:
 *         return _func_bdtri(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = bdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1793
 *         return NPY_NAN
 * 
 * cpdef double bdtri(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtri"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_557__pyx_fuse_1bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_557__pyx_fuse_1bdtri = {"__pyx_fuse_1bdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_557__pyx_fuse_1bdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_20bdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_557__pyx_fuse_1bdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  long __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1bdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtri", 1, 3, 3, 1); __PYX_ERR(1, 1793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtri", 1, 3, 3, 2); __PYX_ERR(1, 1793, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1bdtri") < 0)) __PYX_ERR(1, 1793, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1793, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_x1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1793, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1793, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1bdtri", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1793, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1bdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_556__pyx_fuse_1bdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_556__pyx_fuse_1bdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1bdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1bdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1802
 *         return NPY_NAN
 * 
 * cpdef double bdtrik(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrik"""
 *     return _func_cdfbin2_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_23bdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_bdtrik(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1804
 * cpdef double bdtrik(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.bdtrik"""
 *     return _func_cdfbin2_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double bdtrin(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfbin2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1802
 *         return NPY_NAN
 * 
 * cpdef double bdtrik(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrik"""
 *     return _func_cdfbin2_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_23bdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_22bdtrik[] = "See the documentation for scipy.special.bdtrik";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_23bdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bdtrik (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("bdtrik", 1, 3, 3, 1); __PYX_ERR(1, 1802, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("bdtrik", 1, 3, 3, 2); __PYX_ERR(1, 1802, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bdtrik") < 0)) __PYX_ERR(1, 1802, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1802, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1802, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1802, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("bdtrik", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1802, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.bdtrik", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_22bdtrik(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_22bdtrik(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bdtrik", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_bdtrik(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.bdtrik", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1806
 *     return _func_cdfbin2_wrap(x0, x1, x2)
 * 
 * cpdef double bdtrin(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrin"""
 *     return _func_cdfbin3_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_25bdtrin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_bdtrin(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1808
 * cpdef double bdtrin(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.bdtrin"""
 *     return _func_cdfbin3_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double bei(double x0) nogil:
 */
  __pyx_r = cdfbin3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1806
 *     return _func_cdfbin2_wrap(x0, x1, x2)
 * 
 * cpdef double bdtrin(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrin"""
 *     return _func_cdfbin3_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_25bdtrin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_24bdtrin[] = "See the documentation for scipy.special.bdtrin";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_25bdtrin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bdtrin (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("bdtrin", 1, 3, 3, 1); __PYX_ERR(1, 1806, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("bdtrin", 1, 3, 3, 2); __PYX_ERR(1, 1806, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bdtrin") < 0)) __PYX_ERR(1, 1806, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1806, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1806, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1806, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("bdtrin", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1806, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.bdtrin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_24bdtrin(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_24bdtrin(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bdtrin", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_bdtrin(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.bdtrin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1810
 *     return _func_cdfbin3_wrap(x0, x1, x2)
 * 
 * cpdef double bei(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bei"""
 *     return _func_bei_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_27bei(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_bei(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1812
 * cpdef double bei(double x0) nogil:
 *     """See the documentation for scipy.special.bei"""
 *     return _func_bei_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double beip(double x0) nogil:
 */
  __pyx_r = bei_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1810
 *     return _func_cdfbin3_wrap(x0, x1, x2)
 * 
 * cpdef double bei(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bei"""
 *     return _func_bei_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_27bei(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_26bei[] = "See the documentation for scipy.special.bei";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_27bei(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bei (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1810, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.bei", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_26bei(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_26bei(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bei", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_bei(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.bei", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1814
 *     return _func_bei_wrap(x0)
 * 
 * cpdef double beip(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.beip"""
 *     return _func_beip_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_29beip(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_beip(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1816
 * cpdef double beip(double x0) nogil:
 *     """See the documentation for scipy.special.beip"""
 *     return _func_beip_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ber(double x0) nogil:
 */
  __pyx_r = beip_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1814
 *     return _func_bei_wrap(x0)
 * 
 * cpdef double beip(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.beip"""
 *     return _func_beip_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_29beip(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_28beip[] = "See the documentation for scipy.special.beip";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_29beip(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("beip (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1814, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.beip", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_28beip(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_28beip(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("beip", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_beip(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.beip", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1818
 *     return _func_beip_wrap(x0)
 * 
 * cpdef double ber(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ber"""
 *     return _func_ber_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_31ber(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ber(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1820
 * cpdef double ber(double x0) nogil:
 *     """See the documentation for scipy.special.ber"""
 *     return _func_ber_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double berp(double x0) nogil:
 */
  __pyx_r = ber_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1818
 *     return _func_beip_wrap(x0)
 * 
 * cpdef double ber(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ber"""
 *     return _func_ber_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_31ber(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_30ber[] = "See the documentation for scipy.special.ber";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_31ber(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ber (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1818, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ber", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_30ber(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_30ber(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ber", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ber(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ber", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1822
 *     return _func_ber_wrap(x0)
 * 
 * cpdef double berp(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.berp"""
 *     return _func_berp_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_33berp(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_berp(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1824
 * cpdef double berp(double x0) nogil:
 *     """See the documentation for scipy.special.berp"""
 *     return _func_berp_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double besselpoly(double x0, double x1, double x2) nogil:
 */
  __pyx_r = berp_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1822
 *     return _func_ber_wrap(x0)
 * 
 * cpdef double berp(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.berp"""
 *     return _func_berp_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_33berp(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_32berp[] = "See the documentation for scipy.special.berp";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_33berp(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("berp (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1822, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.berp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_32berp(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_32berp(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("berp", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_berp(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.berp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1826
 *     return _func_berp_wrap(x0)
 * 
 * cpdef double besselpoly(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.besselpoly"""
 *     return _func_besselpoly(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_35besselpoly(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_besselpoly(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1828
 * cpdef double besselpoly(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.besselpoly"""
 *     return _func_besselpoly(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double beta(double x0, double x1) nogil:
 */
  __pyx_r = besselpoly(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1826
 *     return _func_berp_wrap(x0)
 * 
 * cpdef double besselpoly(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.besselpoly"""
 *     return _func_besselpoly(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_35besselpoly(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_34besselpoly[] = "See the documentation for scipy.special.besselpoly";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_35besselpoly(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("besselpoly (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("besselpoly", 1, 3, 3, 1); __PYX_ERR(1, 1826, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("besselpoly", 1, 3, 3, 2); __PYX_ERR(1, 1826, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "besselpoly") < 0)) __PYX_ERR(1, 1826, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1826, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1826, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1826, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("besselpoly", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1826, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.besselpoly", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_34besselpoly(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_34besselpoly(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("besselpoly", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_besselpoly(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.besselpoly", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1830
 *     return _func_besselpoly(x0, x1, x2)
 * 
 * cpdef double beta(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.beta"""
 *     return _func_beta(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_37beta(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_beta(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1832
 * cpdef double beta(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.beta"""
 *     return _func_beta(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double betainc(double x0, double x1, double x2) nogil:
 */
  __pyx_r = beta(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1830
 *     return _func_besselpoly(x0, x1, x2)
 * 
 * cpdef double beta(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.beta"""
 *     return _func_beta(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_37beta(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_36beta[] = "See the documentation for scipy.special.beta";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_37beta(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("beta (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("beta", 1, 2, 2, 1); __PYX_ERR(1, 1830, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "beta") < 0)) __PYX_ERR(1, 1830, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1830, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1830, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("beta", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1830, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.beta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_36beta(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_36beta(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("beta", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_beta(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.beta", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1834
 *     return _func_beta(x0, x1)
 * 
 * cpdef double betainc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.betainc"""
 *     return _func_incbet(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_39betainc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_betainc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1836
 * cpdef double betainc(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.betainc"""
 *     return _func_incbet(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double betaincinv(double x0, double x1, double x2) nogil:
 */
  __pyx_r = incbet(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1834
 *     return _func_beta(x0, x1)
 * 
 * cpdef double betainc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.betainc"""
 *     return _func_incbet(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_39betainc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_38betainc[] = "See the documentation for scipy.special.betainc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_39betainc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("betainc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("betainc", 1, 3, 3, 1); __PYX_ERR(1, 1834, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("betainc", 1, 3, 3, 2); __PYX_ERR(1, 1834, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "betainc") < 0)) __PYX_ERR(1, 1834, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1834, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1834, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1834, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("betainc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1834, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.betainc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_38betainc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_38betainc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("betainc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_betainc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.betainc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1838
 *     return _func_incbet(x0, x1, x2)
 * 
 * cpdef double betaincinv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.betaincinv"""
 *     return _func_incbi(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_41betaincinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_betaincinv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1840
 * cpdef double betaincinv(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.betaincinv"""
 *     return _func_incbi(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double betaln(double x0, double x1) nogil:
 */
  __pyx_r = incbi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1838
 *     return _func_incbet(x0, x1, x2)
 * 
 * cpdef double betaincinv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.betaincinv"""
 *     return _func_incbi(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_41betaincinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_40betaincinv[] = "See the documentation for scipy.special.betaincinv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_41betaincinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("betaincinv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("betaincinv", 1, 3, 3, 1); __PYX_ERR(1, 1838, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("betaincinv", 1, 3, 3, 2); __PYX_ERR(1, 1838, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "betaincinv") < 0)) __PYX_ERR(1, 1838, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1838, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1838, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1838, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("betaincinv", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1838, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.betaincinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_40betaincinv(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_40betaincinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("betaincinv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_betaincinv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.betaincinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1842
 *     return _func_incbi(x0, x1, x2)
 * 
 * cpdef double betaln(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.betaln"""
 *     return _func_lbeta(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_43betaln(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_betaln(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1844
 * cpdef double betaln(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.betaln"""
 *     return _func_lbeta(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double binom(double x0, double x1) nogil:
 */
  __pyx_r = lbeta(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1842
 *     return _func_incbi(x0, x1, x2)
 * 
 * cpdef double betaln(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.betaln"""
 *     return _func_lbeta(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_43betaln(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_42betaln[] = "See the documentation for scipy.special.betaln";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_43betaln(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("betaln (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("betaln", 1, 2, 2, 1); __PYX_ERR(1, 1842, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "betaln") < 0)) __PYX_ERR(1, 1842, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1842, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1842, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("betaln", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1842, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.betaln", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_42betaln(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_42betaln(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("betaln", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_betaln(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.betaln", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1846
 *     return _func_lbeta(x0, x1)
 * 
 * cpdef double binom(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.binom"""
 *     return _func_binom(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_45binom(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_binom(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1848
 * cpdef double binom(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.binom"""
 *     return _func_binom(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double boxcox(double x0, double x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_binom(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1846
 *     return _func_lbeta(x0, x1)
 * 
 * cpdef double binom(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.binom"""
 *     return _func_binom(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_45binom(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_44binom[] = "See the documentation for scipy.special.binom";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_45binom(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("binom (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("binom", 1, 2, 2, 1); __PYX_ERR(1, 1846, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "binom") < 0)) __PYX_ERR(1, 1846, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1846, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1846, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("binom", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1846, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.binom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_44binom(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_44binom(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("binom", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_binom(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.binom", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1850
 *     return _func_binom(x0, x1)
 * 
 * cpdef double boxcox(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.boxcox"""
 *     return _func_boxcox(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_47boxcox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_boxcox(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1852
 * cpdef double boxcox(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.boxcox"""
 *     return _func_boxcox(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double boxcox1p(double x0, double x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_7_boxcox_boxcox(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1850
 *     return _func_binom(x0, x1)
 * 
 * cpdef double boxcox(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.boxcox"""
 *     return _func_boxcox(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_47boxcox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_46boxcox[] = "See the documentation for scipy.special.boxcox";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_47boxcox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("boxcox (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("boxcox", 1, 2, 2, 1); __PYX_ERR(1, 1850, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "boxcox") < 0)) __PYX_ERR(1, 1850, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1850, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1850, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("boxcox", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1850, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.boxcox", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_46boxcox(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_46boxcox(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("boxcox", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_boxcox(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.boxcox", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1854
 *     return _func_boxcox(x0, x1)
 * 
 * cpdef double boxcox1p(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.boxcox1p"""
 *     return _func_boxcox1p(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_49boxcox1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_boxcox1p(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1856
 * cpdef double boxcox1p(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.boxcox1p"""
 *     return _func_boxcox1p(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double btdtr(double x0, double x1, double x2) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_7_boxcox_boxcox1p(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1854
 *     return _func_boxcox(x0, x1)
 * 
 * cpdef double boxcox1p(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.boxcox1p"""
 *     return _func_boxcox1p(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_49boxcox1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_48boxcox1p[] = "See the documentation for scipy.special.boxcox1p";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_49boxcox1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("boxcox1p (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("boxcox1p", 1, 2, 2, 1); __PYX_ERR(1, 1854, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "boxcox1p") < 0)) __PYX_ERR(1, 1854, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1854, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1854, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("boxcox1p", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1854, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.boxcox1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_48boxcox1p(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_48boxcox1p(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("boxcox1p", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_boxcox1p(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.boxcox1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1858
 *     return _func_boxcox1p(x0, x1)
 * 
 * cpdef double btdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtr"""
 *     return _func_btdtr(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_51btdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1860
 * cpdef double btdtr(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.btdtr"""
 *     return _func_btdtr(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double btdtri(double x0, double x1, double x2) nogil:
 */
  __pyx_r = btdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1858
 *     return _func_boxcox1p(x0, x1)
 * 
 * cpdef double btdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtr"""
 *     return _func_btdtr(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_51btdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_50btdtr[] = "See the documentation for scipy.special.btdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_51btdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("btdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtr", 1, 3, 3, 1); __PYX_ERR(1, 1858, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtr", 1, 3, 3, 2); __PYX_ERR(1, 1858, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "btdtr") < 0)) __PYX_ERR(1, 1858, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1858, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1858, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1858, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("btdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1858, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.btdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_50btdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_50btdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("btdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_btdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.btdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1862
 *     return _func_btdtr(x0, x1, x2)
 * 
 * cpdef double btdtri(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtri"""
 *     return _func_incbi(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_53btdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtri(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1864
 * cpdef double btdtri(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.btdtri"""
 *     return _func_incbi(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double btdtria(double x0, double x1, double x2) nogil:
 */
  __pyx_r = incbi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1862
 *     return _func_btdtr(x0, x1, x2)
 * 
 * cpdef double btdtri(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtri"""
 *     return _func_incbi(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_53btdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_52btdtri[] = "See the documentation for scipy.special.btdtri";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_53btdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("btdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtri", 1, 3, 3, 1); __PYX_ERR(1, 1862, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtri", 1, 3, 3, 2); __PYX_ERR(1, 1862, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "btdtri") < 0)) __PYX_ERR(1, 1862, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1862, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1862, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1862, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("btdtri", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1862, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.btdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_52btdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_52btdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("btdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_btdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.btdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1866
 *     return _func_incbi(x0, x1, x2)
 * 
 * cpdef double btdtria(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtria"""
 *     return _func_cdfbet3_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_55btdtria(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtria(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1868
 * cpdef double btdtria(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.btdtria"""
 *     return _func_cdfbet3_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double btdtrib(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfbet3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1866
 *     return _func_incbi(x0, x1, x2)
 * 
 * cpdef double btdtria(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtria"""
 *     return _func_cdfbet3_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_55btdtria(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_54btdtria[] = "See the documentation for scipy.special.btdtria";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_55btdtria(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("btdtria (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtria", 1, 3, 3, 1); __PYX_ERR(1, 1866, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtria", 1, 3, 3, 2); __PYX_ERR(1, 1866, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "btdtria") < 0)) __PYX_ERR(1, 1866, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1866, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1866, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1866, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("btdtria", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1866, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.btdtria", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_54btdtria(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_54btdtria(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("btdtria", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_btdtria(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.btdtria", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1870
 *     return _func_cdfbet3_wrap(x0, x1, x2)
 * 
 * cpdef double btdtrib(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtrib"""
 *     return _func_cdfbet4_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_57btdtrib(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_btdtrib(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1872
 * cpdef double btdtrib(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.btdtrib"""
 *     return _func_cdfbet4_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double cbrt(double x0) nogil:
 */
  __pyx_r = cdfbet4_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1870
 *     return _func_cdfbet3_wrap(x0, x1, x2)
 * 
 * cpdef double btdtrib(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.btdtrib"""
 *     return _func_cdfbet4_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_57btdtrib(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_56btdtrib[] = "See the documentation for scipy.special.btdtrib";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_57btdtrib(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("btdtrib (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtrib", 1, 3, 3, 1); __PYX_ERR(1, 1870, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("btdtrib", 1, 3, 3, 2); __PYX_ERR(1, 1870, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "btdtrib") < 0)) __PYX_ERR(1, 1870, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1870, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1870, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1870, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("btdtrib", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1870, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.btdtrib", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_56btdtrib(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_56btdtrib(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("btdtrib", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_btdtrib(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.btdtrib", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1874
 *     return _func_cdfbet4_wrap(x0, x1, x2)
 * 
 * cpdef double cbrt(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cbrt"""
 *     return _func_cbrt(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_59cbrt(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cbrt(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1876
 * cpdef double cbrt(double x0) nogil:
 *     """See the documentation for scipy.special.cbrt"""
 *     return _func_cbrt(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chdtr(double x0, double x1) nogil:
 */
  __pyx_r = cbrt(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1874
 *     return _func_cdfbet4_wrap(x0, x1, x2)
 * 
 * cpdef double cbrt(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cbrt"""
 *     return _func_cbrt(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_59cbrt(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_58cbrt[] = "See the documentation for scipy.special.cbrt";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_59cbrt(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cbrt (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1874, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.cbrt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_58cbrt(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_58cbrt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cbrt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_cbrt(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.cbrt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1878
 *     return _func_cbrt(x0)
 * 
 * cpdef double chdtr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtr"""
 *     return _func_chdtr(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_61chdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtr(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1880
 * cpdef double chdtr(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.chdtr"""
 *     return _func_chdtr(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chdtrc(double x0, double x1) nogil:
 */
  __pyx_r = chdtr(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1878
 *     return _func_cbrt(x0)
 * 
 * cpdef double chdtr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtr"""
 *     return _func_chdtr(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_61chdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_60chdtr[] = "See the documentation for scipy.special.chdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_61chdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chdtr", 1, 2, 2, 1); __PYX_ERR(1, 1878, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chdtr") < 0)) __PYX_ERR(1, 1878, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1878, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1878, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chdtr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1878, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_60chdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_60chdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chdtr(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1882
 *     return _func_chdtr(x0, x1)
 * 
 * cpdef double chdtrc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtrc"""
 *     return _func_chdtrc(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_63chdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtrc(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1884
 * cpdef double chdtrc(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.chdtrc"""
 *     return _func_chdtrc(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chdtri(double x0, double x1) nogil:
 */
  __pyx_r = chdtrc(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1882
 *     return _func_chdtr(x0, x1)
 * 
 * cpdef double chdtrc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtrc"""
 *     return _func_chdtrc(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_63chdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_62chdtrc[] = "See the documentation for scipy.special.chdtrc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_63chdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chdtrc", 1, 2, 2, 1); __PYX_ERR(1, 1882, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chdtrc") < 0)) __PYX_ERR(1, 1882, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1882, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1882, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chdtrc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1882, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_62chdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_62chdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chdtrc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1886
 *     return _func_chdtrc(x0, x1)
 * 
 * cpdef double chdtri(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtri"""
 *     return _func_chdtri(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_65chdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtri(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1888
 * cpdef double chdtri(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.chdtri"""
 *     return _func_chdtri(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chdtriv(double x0, double x1) nogil:
 */
  __pyx_r = chdtri(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1886
 *     return _func_chdtrc(x0, x1)
 * 
 * cpdef double chdtri(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtri"""
 *     return _func_chdtri(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_65chdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_64chdtri[] = "See the documentation for scipy.special.chdtri";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_65chdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chdtri", 1, 2, 2, 1); __PYX_ERR(1, 1886, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chdtri") < 0)) __PYX_ERR(1, 1886, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1886, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1886, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chdtri", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1886, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_64chdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_64chdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chdtri(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1890
 *     return _func_chdtri(x0, x1)
 * 
 * cpdef double chdtriv(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtriv"""
 *     return _func_cdfchi3_wrap(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_67chdtriv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chdtriv(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1892
 * cpdef double chdtriv(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.chdtriv"""
 *     return _func_cdfchi3_wrap(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chndtr(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfchi3_wrap(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1890
 *     return _func_chdtri(x0, x1)
 * 
 * cpdef double chdtriv(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chdtriv"""
 *     return _func_cdfchi3_wrap(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_67chdtriv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_66chdtriv[] = "See the documentation for scipy.special.chdtriv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_67chdtriv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chdtriv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chdtriv", 1, 2, 2, 1); __PYX_ERR(1, 1890, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chdtriv") < 0)) __PYX_ERR(1, 1890, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1890, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1890, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chdtriv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1890, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chdtriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_66chdtriv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_66chdtriv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chdtriv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chdtriv(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chdtriv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1894
 *     return _func_cdfchi3_wrap(x0, x1)
 * 
 * cpdef double chndtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtr"""
 *     return _func_cdfchn1_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_69chndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1896
 * cpdef double chndtr(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.chndtr"""
 *     return _func_cdfchn1_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chndtridf(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfchn1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1894
 *     return _func_cdfchi3_wrap(x0, x1)
 * 
 * cpdef double chndtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtr"""
 *     return _func_cdfchn1_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_69chndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_68chndtr[] = "See the documentation for scipy.special.chndtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_69chndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chndtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtr", 1, 3, 3, 1); __PYX_ERR(1, 1894, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtr", 1, 3, 3, 2); __PYX_ERR(1, 1894, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chndtr") < 0)) __PYX_ERR(1, 1894, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1894, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1894, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1894, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chndtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1894, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_68chndtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_68chndtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chndtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chndtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1898
 *     return _func_cdfchn1_wrap(x0, x1, x2)
 * 
 * cpdef double chndtridf(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtridf"""
 *     return _func_cdfchn3_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_71chndtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtridf(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1900
 * cpdef double chndtridf(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.chndtridf"""
 *     return _func_cdfchn3_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chndtrinc(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfchn3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1898
 *     return _func_cdfchn1_wrap(x0, x1, x2)
 * 
 * cpdef double chndtridf(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtridf"""
 *     return _func_cdfchn3_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_71chndtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_70chndtridf[] = "See the documentation for scipy.special.chndtridf";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_71chndtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chndtridf (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtridf", 1, 3, 3, 1); __PYX_ERR(1, 1898, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtridf", 1, 3, 3, 2); __PYX_ERR(1, 1898, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chndtridf") < 0)) __PYX_ERR(1, 1898, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1898, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1898, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1898, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chndtridf", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1898, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chndtridf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_70chndtridf(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_70chndtridf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chndtridf", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chndtridf(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chndtridf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1902
 *     return _func_cdfchn3_wrap(x0, x1, x2)
 * 
 * cpdef double chndtrinc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtrinc"""
 *     return _func_cdfchn4_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_73chndtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtrinc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1904
 * cpdef double chndtrinc(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.chndtrinc"""
 *     return _func_cdfchn4_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double chndtrix(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfchn4_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1902
 *     return _func_cdfchn3_wrap(x0, x1, x2)
 * 
 * cpdef double chndtrinc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtrinc"""
 *     return _func_cdfchn4_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_73chndtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_72chndtrinc[] = "See the documentation for scipy.special.chndtrinc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_73chndtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chndtrinc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtrinc", 1, 3, 3, 1); __PYX_ERR(1, 1902, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtrinc", 1, 3, 3, 2); __PYX_ERR(1, 1902, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chndtrinc") < 0)) __PYX_ERR(1, 1902, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1902, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1902, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1902, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chndtrinc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1902, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chndtrinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_72chndtrinc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_72chndtrinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chndtrinc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chndtrinc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chndtrinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1906
 *     return _func_cdfchn4_wrap(x0, x1, x2)
 * 
 * cpdef double chndtrix(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtrix"""
 *     return _func_cdfchn2_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_75chndtrix(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_chndtrix(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1908
 * cpdef double chndtrix(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.chndtrix"""
 *     return _func_cdfchn2_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double cosdg(double x0) nogil:
 */
  __pyx_r = cdfchn2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1906
 *     return _func_cdfchn4_wrap(x0, x1, x2)
 * 
 * cpdef double chndtrix(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.chndtrix"""
 *     return _func_cdfchn2_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_75chndtrix(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_74chndtrix[] = "See the documentation for scipy.special.chndtrix";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_75chndtrix(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("chndtrix (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtrix", 1, 3, 3, 1); __PYX_ERR(1, 1906, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("chndtrix", 1, 3, 3, 2); __PYX_ERR(1, 1906, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chndtrix") < 0)) __PYX_ERR(1, 1906, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1906, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1906, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1906, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("chndtrix", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1906, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.chndtrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_74chndtrix(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_74chndtrix(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("chndtrix", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_chndtrix(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.chndtrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1910
 *     return _func_cdfchn2_wrap(x0, x1, x2)
 * 
 * cpdef double cosdg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cosdg"""
 *     return _func_cosdg(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_77cosdg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cosdg(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1912
 * cpdef double cosdg(double x0) nogil:
 *     """See the documentation for scipy.special.cosdg"""
 *     return _func_cosdg(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double cosm1(double x0) nogil:
 */
  __pyx_r = cosdg(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1910
 *     return _func_cdfchn2_wrap(x0, x1, x2)
 * 
 * cpdef double cosdg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cosdg"""
 *     return _func_cosdg(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_77cosdg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_76cosdg[] = "See the documentation for scipy.special.cosdg";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_77cosdg(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cosdg (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1910, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.cosdg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_76cosdg(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_76cosdg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cosdg", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_cosdg(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.cosdg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1914
 *     return _func_cosdg(x0)
 * 
 * cpdef double cosm1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cosm1"""
 *     return _func_cosm1(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_79cosm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cosm1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1916
 * cpdef double cosm1(double x0) nogil:
 *     """See the documentation for scipy.special.cosm1"""
 *     return _func_cosm1(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double cotdg(double x0) nogil:
 */
  __pyx_r = cosm1(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1914
 *     return _func_cosdg(x0)
 * 
 * cpdef double cosm1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cosm1"""
 *     return _func_cosm1(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_79cosm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_78cosm1[] = "See the documentation for scipy.special.cosm1";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_79cosm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cosm1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1914, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.cosm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_78cosm1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_78cosm1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cosm1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_cosm1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.cosm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1918
 *     return _func_cosm1(x0)
 * 
 * cpdef double cotdg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cotdg"""
 *     return _func_cotdg(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_81cotdg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_cotdg(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1920
 * cpdef double cotdg(double x0) nogil:
 *     """See the documentation for scipy.special.cotdg"""
 *     return _func_cotdg(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t dawsn(Dd_number_t x0) nogil:
 */
  __pyx_r = cotdg(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1918
 *     return _func_cosm1(x0)
 * 
 * cpdef double cotdg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.cotdg"""
 *     return _func_cotdg(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_81cotdg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_80cotdg[] = "See the documentation for scipy.special.cotdg";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_81cotdg(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("cotdg (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1918, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.cotdg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_80cotdg(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_80cotdg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("cotdg", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_cotdg(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.cotdg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1922
 *     return _func_cotdg(x0)
 * 
 * cpdef Dd_number_t dawsn(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.dawsn"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_83dawsn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_82dawsn[] = "See the documentation for scipy.special.dawsn";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_83dawsn = {"dawsn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_83dawsn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_82dawsn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_83dawsn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1922, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1922, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1922, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1922, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1922, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_82dawsn(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_82dawsn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dawsn", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1922, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1922, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1922, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1922, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1922, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1922, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1922, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1922, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1922, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1922, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1922, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1922, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1922, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1922, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1922, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1922, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1922, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1922, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1922, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1922, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_561__pyx_fuse_0dawsn(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_83dawsn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_dawsn(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":1927
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_dawsn)(x0)
 *     elif Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_dawsn_complex)(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn_complex)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1922
 *     return _func_cotdg(x0)
 * 
 * cpdef Dd_number_t dawsn(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.dawsn"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_561__pyx_fuse_0dawsn(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_561__pyx_fuse_0dawsn = {"__pyx_fuse_0dawsn", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_561__pyx_fuse_0dawsn, METH_O, __pyx_doc_5scipy_7special_14cython_special_82dawsn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_561__pyx_fuse_0dawsn(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0dawsn (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1922, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0dawsn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_560__pyx_fuse_0dawsn(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_560__pyx_fuse_0dawsn(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0dawsn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_dawsn(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0dawsn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_563__pyx_fuse_1dawsn(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_83dawsn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_dawsn(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1925
 *     """See the documentation for scipy.special.dawsn"""
 *     if Dd_number_t is double:
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_dawsn)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_dawsn_complex)(x0)
 */
  __pyx_r = ((double (*)(double))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1922
 *     return _func_cotdg(x0)
 * 
 * cpdef Dd_number_t dawsn(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.dawsn"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_563__pyx_fuse_1dawsn(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_563__pyx_fuse_1dawsn = {"__pyx_fuse_1dawsn", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_563__pyx_fuse_1dawsn, METH_O, __pyx_doc_5scipy_7special_14cython_special_82dawsn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_563__pyx_fuse_1dawsn(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1dawsn (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1922, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1dawsn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_562__pyx_fuse_1dawsn(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_562__pyx_fuse_1dawsn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1dawsn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_dawsn(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1dawsn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1934
 *             return NPY_NAN
 * 
 * cpdef double ellipe(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipe"""
 *     return _func_ellpe(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_85ellipe(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipe(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1936
 * cpdef double ellipe(double x0) nogil:
 *     """See the documentation for scipy.special.ellipe"""
 *     return _func_ellpe(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ellipeinc(double x0, double x1) nogil:
 */
  __pyx_r = ellpe(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1934
 *             return NPY_NAN
 * 
 * cpdef double ellipe(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipe"""
 *     return _func_ellpe(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_85ellipe(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_84ellipe[] = "See the documentation for scipy.special.ellipe";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_85ellipe(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ellipe (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1934, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ellipe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_84ellipe(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_84ellipe(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ellipe", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ellipe(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1934, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ellipe", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1938
 *     return _func_ellpe(x0)
 * 
 * cpdef double ellipeinc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipeinc"""
 *     return _func_ellie(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_87ellipeinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipeinc(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1940
 * cpdef double ellipeinc(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.ellipeinc"""
 *     return _func_ellie(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cdef void ellipj(double x0, double x1, double *y0, double *y1, double *y2, double *y3) nogil:
 */
  __pyx_r = ellie(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1938
 *     return _func_ellpe(x0)
 * 
 * cpdef double ellipeinc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipeinc"""
 *     return _func_ellie(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_87ellipeinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_86ellipeinc[] = "See the documentation for scipy.special.ellipeinc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_87ellipeinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ellipeinc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ellipeinc", 1, 2, 2, 1); __PYX_ERR(1, 1938, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ellipeinc") < 0)) __PYX_ERR(1, 1938, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1938, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1938, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ellipeinc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1938, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ellipeinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_86ellipeinc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_86ellipeinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ellipeinc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ellipeinc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ellipeinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1942
 *     return _func_ellie(x0, x1)
 * 
 * cdef void ellipj(double x0, double x1, double *y0, double *y1, double *y2, double *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipj"""
 *     _func_ellpj(x0, x1, y0, y1, y2, y3)
 */

static void __pyx_f_5scipy_7special_14cython_special_ellipj(double __pyx_v_x0, double __pyx_v_x1, double *__pyx_v_y0, double *__pyx_v_y1, double *__pyx_v_y2, double *__pyx_v_y3) {

  /* "scipy/special/cython_special.pyx":1944
 * cdef void ellipj(double x0, double x1, double *y0, double *y1, double *y2, double *y3) nogil:
 *     """See the documentation for scipy.special.ellipj"""
 *     _func_ellpj(x0, x1, y0, y1, y2, y3)             # <<<<<<<<<<<<<<
 * 
 * def _ellipj_pywrap(double x0, double x1):
 */
  (void)(ellpj(__pyx_v_x0, __pyx_v_x1, __pyx_v_y0, __pyx_v_y1, __pyx_v_y2, __pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1942
 *     return _func_ellie(x0, x1)
 * 
 * cdef void ellipj(double x0, double x1, double *y0, double *y1, double *y2, double *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipj"""
 *     _func_ellpj(x0, x1, y0, y1, y2, y3)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":1946
 *     _func_ellpj(x0, x1, y0, y1, y2, y3)
 * 
 * def _ellipj_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_89_ellipj_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_89_ellipj_pywrap = {"_ellipj_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_89_ellipj_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_89_ellipj_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_ellipj_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_ellipj_pywrap", 1, 2, 2, 1); __PYX_ERR(1, 1946, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_ellipj_pywrap") < 0)) __PYX_ERR(1, 1946, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1946, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1946, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_ellipj_pywrap", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1946, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._ellipj_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_88_ellipj_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_88_ellipj_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  double __pyx_v_y2;
  double __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_ellipj_pywrap", 0);

  /* "scipy/special/cython_special.pyx":1951
 *     cdef double y2
 *     cdef double y3
 *     ellipj(x0, x1, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 *     return y0, y1, y2, y3
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_ellipj(__pyx_v_x0, __pyx_v_x1, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));

  /* "scipy/special/cython_special.pyx":1952
 *     cdef double y3
 *     ellipj(x0, x1, &y0, &y1, &y2, &y3)
 *     return y0, y1, y2, y3             # <<<<<<<<<<<<<<
 * 
 * cpdef double ellipkinc(double x0, double x1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_y3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1946
 *     _func_ellpj(x0, x1, y0, y1, y2, y3)
 * 
 * def _ellipj_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("scipy.special.cython_special._ellipj_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1954
 *     return y0, y1, y2, y3
 * 
 * cpdef double ellipkinc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipkinc"""
 *     return _func_ellik(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_91ellipkinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipkinc(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1956
 * cpdef double ellipkinc(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.ellipkinc"""
 *     return _func_ellik(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ellipkm1(double x0) nogil:
 */
  __pyx_r = ellik(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1954
 *     return y0, y1, y2, y3
 * 
 * cpdef double ellipkinc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipkinc"""
 *     return _func_ellik(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_91ellipkinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_90ellipkinc[] = "See the documentation for scipy.special.ellipkinc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_91ellipkinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ellipkinc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ellipkinc", 1, 2, 2, 1); __PYX_ERR(1, 1954, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ellipkinc") < 0)) __PYX_ERR(1, 1954, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1954, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1954, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ellipkinc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1954, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ellipkinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_90ellipkinc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_90ellipkinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ellipkinc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ellipkinc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ellipkinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1958
 *     return _func_ellik(x0, x1)
 * 
 * cpdef double ellipkm1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipkm1"""
 *     return _func_ellpk(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_93ellipkm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipkm1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1960
 * cpdef double ellipkm1(double x0) nogil:
 *     """See the documentation for scipy.special.ellipkm1"""
 *     return _func_ellpk(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ellipk(double x0) nogil:
 */
  __pyx_r = ellpk(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1958
 *     return _func_ellik(x0, x1)
 * 
 * cpdef double ellipkm1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipkm1"""
 *     return _func_ellpk(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_93ellipkm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_92ellipkm1[] = "See the documentation for scipy.special.ellipkm1";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_93ellipkm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ellipkm1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1958, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ellipkm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_92ellipkm1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_92ellipkm1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ellipkm1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ellipkm1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ellipkm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1962
 *     return _func_ellpk(x0)
 * 
 * cpdef double ellipk(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipk"""
 *     return _func_ellipk(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_95ellipk(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ellipk(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1964
 * cpdef double ellipk(double x0) nogil:
 *     """See the documentation for scipy.special.ellipk"""
 *     return _func_ellipk(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double entr(double x0) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_7_ellipk_ellipk(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1962
 *     return _func_ellpk(x0)
 * 
 * cpdef double ellipk(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ellipk"""
 *     return _func_ellipk(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_95ellipk(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_94ellipk[] = "See the documentation for scipy.special.ellipk";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_95ellipk(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ellipk (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1962, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ellipk", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_94ellipk(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_94ellipk(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ellipk", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ellipk(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ellipk", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1966
 *     return _func_ellipk(x0)
 * 
 * cpdef double entr(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.entr"""
 *     return _func_entr(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_97entr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_entr(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1968
 * cpdef double entr(double x0) nogil:
 *     """See the documentation for scipy.special.entr"""
 *     return _func_entr(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t erf(Dd_number_t x0) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_16_convex_analysis_entr(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1966
 *     return _func_ellipk(x0)
 * 
 * cpdef double entr(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.entr"""
 *     return _func_entr(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_97entr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_96entr[] = "See the documentation for scipy.special.entr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_97entr(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("entr (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1966, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.entr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_96entr(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_96entr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("entr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_entr(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.entr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1970
 *     return _func_entr(x0)
 * 
 * cpdef Dd_number_t erf(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erf"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_99erf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_98erf[] = "See the documentation for scipy.special.erf";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_99erf = {"erf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_99erf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_98erf};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_99erf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1970, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1970, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1970, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1970, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1970, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_98erf(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_98erf(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("erf", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1970, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1970, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1970, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1970, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1970, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1970, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1970, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1970, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1970, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1970, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1970, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1970, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1970, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1970, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1970, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1970, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1970, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1970, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1970, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1970, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1970, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_567__pyx_fuse_0erf(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_99erf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erf(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":1973
 *     """See the documentation for scipy.special.erf"""
 *     if Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erf)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_erf(x0)
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erf)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1970
 *     return _func_entr(x0)
 * 
 * cpdef Dd_number_t erf(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erf"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_567__pyx_fuse_0erf(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_567__pyx_fuse_0erf = {"__pyx_fuse_0erf", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_567__pyx_fuse_0erf, METH_O, __pyx_doc_5scipy_7special_14cython_special_98erf};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_567__pyx_fuse_0erf(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0erf (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1970, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_566__pyx_fuse_0erf(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_566__pyx_fuse_0erf(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0erf", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erf(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_569__pyx_fuse_1erf(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_99erf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erf(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1975
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erf)(x0)
 *     elif Dd_number_t is double:
 *         return _func_erf(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = erf(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1970
 *     return _func_entr(x0)
 * 
 * cpdef Dd_number_t erf(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erf"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_569__pyx_fuse_1erf(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_569__pyx_fuse_1erf = {"__pyx_fuse_1erf", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_569__pyx_fuse_1erf, METH_O, __pyx_doc_5scipy_7special_14cython_special_98erf};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_569__pyx_fuse_1erf(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1erf (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1970, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_568__pyx_fuse_1erf(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_568__pyx_fuse_1erf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1erf", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erf(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1982
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfc(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfc"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_101erfc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_100erfc[] = "See the documentation for scipy.special.erfc";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_101erfc = {"erfc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_101erfc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_100erfc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_101erfc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1982, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1982, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1982, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1982, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1982, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_100erfc(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_100erfc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("erfc", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1982, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1982, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1982, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1982, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1982, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1982, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1982, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1982, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1982, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1982, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1982, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1982, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1982, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1982, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1982, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1982, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1982, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1982, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1982, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1982, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_573__pyx_fuse_0erfc(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_101erfc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfc(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":1985
 *     """See the documentation for scipy.special.erfc"""
 *     if Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfc)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_erfc(x0)
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfc)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1982
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfc(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfc"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_573__pyx_fuse_0erfc(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_573__pyx_fuse_0erfc = {"__pyx_fuse_0erfc", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_573__pyx_fuse_0erfc, METH_O, __pyx_doc_5scipy_7special_14cython_special_100erfc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_573__pyx_fuse_0erfc(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0erfc (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1982, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erfc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_572__pyx_fuse_0erfc(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_572__pyx_fuse_0erfc(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0erfc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfc(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erfc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_575__pyx_fuse_1erfc(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_101erfc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfc(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1987
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfc)(x0)
 *     elif Dd_number_t is double:
 *         return _func_erfc(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = erfc(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1982
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfc(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfc"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_575__pyx_fuse_1erfc(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_575__pyx_fuse_1erfc = {"__pyx_fuse_1erfc", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_575__pyx_fuse_1erfc, METH_O, __pyx_doc_5scipy_7special_14cython_special_100erfc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_575__pyx_fuse_1erfc(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1erfc (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1982, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erfc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_574__pyx_fuse_1erfc(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_574__pyx_fuse_1erfc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1erfc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfc(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erfc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":1994
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfcx(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfcx"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_103erfcx(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_102erfcx[] = "See the documentation for scipy.special.erfcx";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_103erfcx = {"erfcx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_103erfcx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_102erfcx};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_103erfcx(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 1994, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 1994, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 1994, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 1994, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1994, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_102erfcx(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_102erfcx(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("erfcx", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 1994, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1994, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1994, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1994, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1994, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 1994, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1994, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1994, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1994, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1994, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 1994, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 1994, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1994, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1994, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 1994, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 1994, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1994, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 1994, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 1994, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 1994, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_579__pyx_fuse_0erfcx(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_103erfcx(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfcx(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":1999
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfcx)(x0)
 *     elif Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfcx_complex)(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx_complex)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1994
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfcx(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfcx"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_579__pyx_fuse_0erfcx(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_579__pyx_fuse_0erfcx = {"__pyx_fuse_0erfcx", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_579__pyx_fuse_0erfcx, METH_O, __pyx_doc_5scipy_7special_14cython_special_102erfcx};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_579__pyx_fuse_0erfcx(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0erfcx (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1994, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erfcx", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_578__pyx_fuse_0erfcx(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_578__pyx_fuse_0erfcx(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0erfcx", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfcx(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erfcx", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_581__pyx_fuse_1erfcx(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_103erfcx(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfcx(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":1997
 *     """See the documentation for scipy.special.erfcx"""
 *     if Dd_number_t is double:
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfcx)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfcx_complex)(x0)
 */
  __pyx_r = ((double (*)(double))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":1994
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfcx(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfcx"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_581__pyx_fuse_1erfcx(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_581__pyx_fuse_1erfcx = {"__pyx_fuse_1erfcx", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_581__pyx_fuse_1erfcx, METH_O, __pyx_doc_5scipy_7special_14cython_special_102erfcx};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_581__pyx_fuse_1erfcx(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1erfcx (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 1994, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erfcx", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_580__pyx_fuse_1erfcx(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_580__pyx_fuse_1erfcx(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1erfcx", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfcx(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erfcx", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2006
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfi"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_105erfi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_104erfi[] = "See the documentation for scipy.special.erfi";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_105erfi = {"erfi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_105erfi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_104erfi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_105erfi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2006, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2006, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2006, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2006, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2006, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_104erfi(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_104erfi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("erfi", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2006, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2006, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2006, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2006, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2006, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2006, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2006, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2006, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2006, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2006, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2006, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2006, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2006, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2006, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2006, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2006, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2006, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2006, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2006, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2006, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_585__pyx_fuse_0erfi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_105erfi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfi(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2011
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfi)(x0)
 *     elif Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfi_complex)(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi_complex)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2006
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfi"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_585__pyx_fuse_0erfi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_585__pyx_fuse_0erfi = {"__pyx_fuse_0erfi", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_585__pyx_fuse_0erfi, METH_O, __pyx_doc_5scipy_7special_14cython_special_104erfi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_585__pyx_fuse_0erfi(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0erfi (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2006, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erfi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_584__pyx_fuse_0erfi(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_584__pyx_fuse_0erfi(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0erfi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfi(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0erfi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_587__pyx_fuse_1erfi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_105erfi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfi(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2009
 *     """See the documentation for scipy.special.erfi"""
 *     if Dd_number_t is double:
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfi)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_erfi_complex)(x0)
 */
  __pyx_r = ((double (*)(double))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2006
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfi"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_587__pyx_fuse_1erfi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_587__pyx_fuse_1erfi = {"__pyx_fuse_1erfi", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_587__pyx_fuse_1erfi, METH_O, __pyx_doc_5scipy_7special_14cython_special_104erfi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_587__pyx_fuse_1erfi(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1erfi (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2006, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erfi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_586__pyx_fuse_1erfi(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_586__pyx_fuse_1erfi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1erfi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfi(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1erfi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2018
 *             return NPY_NAN
 * 
 * cpdef double erfinv(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfinv"""
 *     return _func_erfinv(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_107erfinv(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_erfinv(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2020
 * cpdef double erfinv(double x0) nogil:
 *     """See the documentation for scipy.special.erfinv"""
 *     return _func_erfinv(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double erfcinv(double x0) nogil:
 */
  __pyx_r = erfinv(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2018
 *             return NPY_NAN
 * 
 * cpdef double erfinv(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfinv"""
 *     return _func_erfinv(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_107erfinv(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_106erfinv[] = "See the documentation for scipy.special.erfinv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_107erfinv(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("erfinv (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2018, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.erfinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_106erfinv(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_106erfinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("erfinv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_erfinv(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.erfinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2022
 *     return _func_erfinv(x0)
 * 
 * cpdef double erfcinv(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfcinv"""
 *     return _func_erfcinv(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_109erfcinv(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_erfcinv(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2024
 * cpdef double erfcinv(double x0) nogil:
 *     """See the documentation for scipy.special.erfcinv"""
 *     return _func_erfcinv(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:
 */
  __pyx_r = erfcinv(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2022
 *     return _func_erfinv(x0)
 * 
 * cpdef double erfcinv(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfcinv"""
 *     return _func_erfcinv(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_109erfcinv(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_108erfcinv[] = "See the documentation for scipy.special.erfcinv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_109erfcinv(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("erfcinv (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2022, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.erfcinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_108erfcinv(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_108erfcinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("erfcinv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_erfcinv(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2022, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.erfcinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2026
 *     return _func_erfcinv(x0)
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_111eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_110eval_chebyc[] = "See the documentation for scipy.special.eval_chebyc";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_111eval_chebyc = {"eval_chebyc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_111eval_chebyc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_110eval_chebyc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_111eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2026, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2026, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2026, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2026, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2026, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_110eval_chebyc(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_110eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_chebyc", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2026, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2026, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2026, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2026, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2026, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2026, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2026, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2026, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2026, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2026, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2026, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2026, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2026, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2026, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2026, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2026, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2026, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2026, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_591__pyx_fuse_0_0eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_111eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2029
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_chebyc[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebyc[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2026
 *     return _func_erfcinv(x0)
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_591__pyx_fuse_0_0eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_591__pyx_fuse_0_0eval_chebyc = {"__pyx_fuse_0_0eval_chebyc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_591__pyx_fuse_0_0eval_chebyc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_110eval_chebyc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_591__pyx_fuse_0_0eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebyc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebyc", 1, 2, 2, 1); __PYX_ERR(1, 2026, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_chebyc") < 0)) __PYX_ERR(1, 2026, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebyc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2026, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_590__pyx_fuse_0_0eval_chebyc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_590__pyx_fuse_0_0eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebyc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_593__pyx_fuse_0_1eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_111eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2031
 *         return _func_eval_chebyc[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebyc[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebyc_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2026
 *     return _func_erfcinv(x0)
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_593__pyx_fuse_0_1eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_593__pyx_fuse_0_1eval_chebyc = {"__pyx_fuse_0_1eval_chebyc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_593__pyx_fuse_0_1eval_chebyc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_110eval_chebyc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_593__pyx_fuse_0_1eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebyc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebyc", 1, 2, 2, 1); __PYX_ERR(1, 2026, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_chebyc") < 0)) __PYX_ERR(1, 2026, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebyc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2026, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_592__pyx_fuse_0_1eval_chebyc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_592__pyx_fuse_0_1eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebyc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_595__pyx_fuse_1_0eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_111eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2036
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2026
 *     return _func_erfcinv(x0)
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_595__pyx_fuse_1_0eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_595__pyx_fuse_1_0eval_chebyc = {"__pyx_fuse_1_0eval_chebyc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_595__pyx_fuse_1_0eval_chebyc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_110eval_chebyc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_595__pyx_fuse_1_0eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebyc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebyc", 1, 2, 2, 1); __PYX_ERR(1, 2026, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_chebyc") < 0)) __PYX_ERR(1, 2026, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebyc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2026, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_594__pyx_fuse_1_0eval_chebyc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_594__pyx_fuse_1_0eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebyc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_597__pyx_fuse_1_1eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_111eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2033
 *         return _func_eval_chebyc[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebyc_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2026
 *     return _func_erfcinv(x0)
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_597__pyx_fuse_1_1eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_597__pyx_fuse_1_1eval_chebyc = {"__pyx_fuse_1_1eval_chebyc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_597__pyx_fuse_1_1eval_chebyc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_110eval_chebyc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_597__pyx_fuse_1_1eval_chebyc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebyc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebyc", 1, 2, 2, 1); __PYX_ERR(1, 2026, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_chebyc") < 0)) __PYX_ERR(1, 2026, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2026, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebyc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2026, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_596__pyx_fuse_1_1eval_chebyc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_596__pyx_fuse_1_1eval_chebyc(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebyc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebyc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2040
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebys(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_113eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_112eval_chebys[] = "See the documentation for scipy.special.eval_chebys";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_113eval_chebys = {"eval_chebys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_113eval_chebys, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_112eval_chebys};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_113eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2040, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2040, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2040, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2040, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2040, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_112eval_chebys(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_112eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_chebys", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2040, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2040, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2040, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2040, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2040, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2040, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2040, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2040, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2040, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2040, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2040, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2040, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2040, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2040, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2040, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2040, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2040, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2040, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_601__pyx_fuse_0_0eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_113eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebys(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2043
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_chebys[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebys[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2040
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebys(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_601__pyx_fuse_0_0eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_601__pyx_fuse_0_0eval_chebys = {"__pyx_fuse_0_0eval_chebys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_601__pyx_fuse_0_0eval_chebys, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_112eval_chebys};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_601__pyx_fuse_0_0eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebys (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebys", 1, 2, 2, 1); __PYX_ERR(1, 2040, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_chebys") < 0)) __PYX_ERR(1, 2040, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebys", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2040, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_600__pyx_fuse_0_0eval_chebys(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_600__pyx_fuse_0_0eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebys", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebys(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_603__pyx_fuse_0_1eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_113eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebys(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2045
 *         return _func_eval_chebys[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebys[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebys_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2040
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebys(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_603__pyx_fuse_0_1eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_603__pyx_fuse_0_1eval_chebys = {"__pyx_fuse_0_1eval_chebys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_603__pyx_fuse_0_1eval_chebys, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_112eval_chebys};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_603__pyx_fuse_0_1eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebys (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebys", 1, 2, 2, 1); __PYX_ERR(1, 2040, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_chebys") < 0)) __PYX_ERR(1, 2040, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebys", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2040, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_602__pyx_fuse_0_1eval_chebys(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_602__pyx_fuse_0_1eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebys", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebys(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_605__pyx_fuse_1_0eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_113eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebys(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2050
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2040
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebys(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_605__pyx_fuse_1_0eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_605__pyx_fuse_1_0eval_chebys = {"__pyx_fuse_1_0eval_chebys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_605__pyx_fuse_1_0eval_chebys, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_112eval_chebys};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_605__pyx_fuse_1_0eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebys (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebys", 1, 2, 2, 1); __PYX_ERR(1, 2040, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_chebys") < 0)) __PYX_ERR(1, 2040, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebys", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2040, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_604__pyx_fuse_1_0eval_chebys(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_604__pyx_fuse_1_0eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebys", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebys(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_607__pyx_fuse_1_1eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_113eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebys(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2047
 *         return _func_eval_chebys[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebys_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2040
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebys(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_607__pyx_fuse_1_1eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_607__pyx_fuse_1_1eval_chebys = {"__pyx_fuse_1_1eval_chebys", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_607__pyx_fuse_1_1eval_chebys, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_112eval_chebys};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_607__pyx_fuse_1_1eval_chebys(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebys (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebys", 1, 2, 2, 1); __PYX_ERR(1, 2040, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_chebys") < 0)) __PYX_ERR(1, 2040, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2040, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebys", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2040, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_606__pyx_fuse_1_1eval_chebys(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_606__pyx_fuse_1_1eval_chebys(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebys", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebys(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebys", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2054
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_115eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_114eval_chebyt[] = "See the documentation for scipy.special.eval_chebyt";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_115eval_chebyt = {"eval_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_115eval_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_114eval_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_115eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2054, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2054, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2054, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2054, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2054, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_114eval_chebyt(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_114eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_chebyt", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2054, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2054, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2054, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2054, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2054, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2054, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2054, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2054, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2054, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2054, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2054, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2054, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2054, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2054, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2054, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2054, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2054, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_611__pyx_fuse_0_0eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_115eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2057
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_chebyt[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebyt[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2054
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_611__pyx_fuse_0_0eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_611__pyx_fuse_0_0eval_chebyt = {"__pyx_fuse_0_0eval_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_611__pyx_fuse_0_0eval_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_114eval_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_611__pyx_fuse_0_0eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2054, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_chebyt") < 0)) __PYX_ERR(1, 2054, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2054, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_610__pyx_fuse_0_0eval_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_610__pyx_fuse_0_0eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_613__pyx_fuse_0_1eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_115eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2059
 *         return _func_eval_chebyt[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebyt[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebyt_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2054
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_613__pyx_fuse_0_1eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_613__pyx_fuse_0_1eval_chebyt = {"__pyx_fuse_0_1eval_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_613__pyx_fuse_0_1eval_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_114eval_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_613__pyx_fuse_0_1eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2054, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_chebyt") < 0)) __PYX_ERR(1, 2054, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2054, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_612__pyx_fuse_0_1eval_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_612__pyx_fuse_0_1eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_615__pyx_fuse_1_0eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_115eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2064
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2054
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_615__pyx_fuse_1_0eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_615__pyx_fuse_1_0eval_chebyt = {"__pyx_fuse_1_0eval_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_615__pyx_fuse_1_0eval_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_114eval_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_615__pyx_fuse_1_0eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2054, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_chebyt") < 0)) __PYX_ERR(1, 2054, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2054, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_614__pyx_fuse_1_0eval_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_614__pyx_fuse_1_0eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_617__pyx_fuse_1_1eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_115eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2061
 *         return _func_eval_chebyt[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebyt_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2054
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_617__pyx_fuse_1_1eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_617__pyx_fuse_1_1eval_chebyt = {"__pyx_fuse_1_1eval_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_617__pyx_fuse_1_1eval_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_114eval_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_617__pyx_fuse_1_1eval_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2054, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_chebyt") < 0)) __PYX_ERR(1, 2054, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2054, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2054, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_616__pyx_fuse_1_1eval_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_616__pyx_fuse_1_1eval_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2068
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_117eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_116eval_chebyu[] = "See the documentation for scipy.special.eval_chebyu";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_117eval_chebyu = {"eval_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_117eval_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_116eval_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_117eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2068, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2068, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2068, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2068, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2068, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_116eval_chebyu(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_116eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_chebyu", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2068, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2068, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2068, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2068, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2068, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2068, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2068, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2068, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2068, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2068, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2068, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2068, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2068, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2068, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2068, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2068, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2068, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_621__pyx_fuse_0_0eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_117eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2071
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_chebyu[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebyu[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2068
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_621__pyx_fuse_0_0eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_621__pyx_fuse_0_0eval_chebyu = {"__pyx_fuse_0_0eval_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_621__pyx_fuse_0_0eval_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_116eval_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_621__pyx_fuse_0_0eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2068, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_chebyu") < 0)) __PYX_ERR(1, 2068, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2068, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_620__pyx_fuse_0_0eval_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_620__pyx_fuse_0_0eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_623__pyx_fuse_0_1eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_117eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2073
 *         return _func_eval_chebyu[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_chebyu[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebyu_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2068
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_623__pyx_fuse_0_1eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_623__pyx_fuse_0_1eval_chebyu = {"__pyx_fuse_0_1eval_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_623__pyx_fuse_0_1eval_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_116eval_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_623__pyx_fuse_0_1eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2068, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_chebyu") < 0)) __PYX_ERR(1, 2068, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2068, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_622__pyx_fuse_0_1eval_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_622__pyx_fuse_0_1eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_625__pyx_fuse_1_0eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_117eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2078
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2068
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_625__pyx_fuse_1_0eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_625__pyx_fuse_1_0eval_chebyu = {"__pyx_fuse_1_0eval_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_625__pyx_fuse_1_0eval_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_116eval_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_625__pyx_fuse_1_0eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2068, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_chebyu") < 0)) __PYX_ERR(1, 2068, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2068, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_624__pyx_fuse_1_0eval_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_624__pyx_fuse_1_0eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_627__pyx_fuse_1_1eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_117eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2075
 *         return _func_eval_chebyu[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_chebyu_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2068
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_627__pyx_fuse_1_1eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_627__pyx_fuse_1_1eval_chebyu = {"__pyx_fuse_1_1eval_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_627__pyx_fuse_1_1eval_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_116eval_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_627__pyx_fuse_1_1eval_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2068, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_chebyu") < 0)) __PYX_ERR(1, 2068, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2068, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2068, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_626__pyx_fuse_1_1eval_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_626__pyx_fuse_1_1eval_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2082
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_gegenbauer(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_119eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_118eval_gegenbauer[] = "See the documentation for scipy.special.eval_gegenbauer";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_119eval_gegenbauer = {"eval_gegenbauer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_119eval_gegenbauer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_118eval_gegenbauer};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_119eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2082, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2082, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_118eval_gegenbauer(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_118eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_gegenbauer", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2082, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2082, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2082, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2082, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2082, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2082, __pyx_L1_error)
  __pyx_t_2 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2082, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x2, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2082, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2082, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2082, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2082, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2082, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2082, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2082, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2082, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2082, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2082, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2082, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2082, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_631__pyx_fuse_0_0eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_119eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2085
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_gegenbauer[double_complex](x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_gegenbauer[double](x0, x1, x2)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2082
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_gegenbauer(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_631__pyx_fuse_0_0eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_631__pyx_fuse_0_0eval_gegenbauer = {"__pyx_fuse_0_0eval_gegenbauer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_631__pyx_fuse_0_0eval_gegenbauer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_118eval_gegenbauer};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_631__pyx_fuse_0_0eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  __pyx_t_double_complex __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_gegenbauer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_gegenbauer", 1, 3, 3, 1); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_gegenbauer", 1, 3, 3, 2); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_gegenbauer") < 0)) __PYX_ERR(1, 2082, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x2 = __Pyx_PyComplex_As___pyx_t_double_complex(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_gegenbauer", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2082, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_630__pyx_fuse_0_0eval_gegenbauer(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_630__pyx_fuse_0_0eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_gegenbauer", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_633__pyx_fuse_0_1eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_119eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2087
 *         return _func_eval_gegenbauer[double_complex](x0, x1, x2)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_gegenbauer[double](x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_gegenbauer_l(x0, x1, x2)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2082
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_gegenbauer(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_633__pyx_fuse_0_1eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_633__pyx_fuse_0_1eval_gegenbauer = {"__pyx_fuse_0_1eval_gegenbauer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_633__pyx_fuse_0_1eval_gegenbauer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_118eval_gegenbauer};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_633__pyx_fuse_0_1eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_gegenbauer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_gegenbauer", 1, 3, 3, 1); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_gegenbauer", 1, 3, 3, 2); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_gegenbauer") < 0)) __PYX_ERR(1, 2082, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_gegenbauer", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2082, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_632__pyx_fuse_0_1eval_gegenbauer(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_632__pyx_fuse_0_1eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_gegenbauer", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_635__pyx_fuse_1_0eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_119eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED double __pyx_v_x1, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2092
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2082
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_gegenbauer(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_635__pyx_fuse_1_0eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_635__pyx_fuse_1_0eval_gegenbauer = {"__pyx_fuse_1_0eval_gegenbauer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_635__pyx_fuse_1_0eval_gegenbauer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_118eval_gegenbauer};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_635__pyx_fuse_1_0eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  __pyx_t_double_complex __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_gegenbauer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_gegenbauer", 1, 3, 3, 1); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_gegenbauer", 1, 3, 3, 2); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_gegenbauer") < 0)) __PYX_ERR(1, 2082, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x2 = __Pyx_PyComplex_As___pyx_t_double_complex(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_gegenbauer", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2082, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_634__pyx_fuse_1_0eval_gegenbauer(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_634__pyx_fuse_1_0eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_gegenbauer", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_637__pyx_fuse_1_1eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_119eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2089
 *         return _func_eval_gegenbauer[double](x0, x1, x2)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_gegenbauer_l(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer_l(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2082
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_gegenbauer(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_637__pyx_fuse_1_1eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_637__pyx_fuse_1_1eval_gegenbauer = {"__pyx_fuse_1_1eval_gegenbauer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_637__pyx_fuse_1_1eval_gegenbauer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_118eval_gegenbauer};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_637__pyx_fuse_1_1eval_gegenbauer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_gegenbauer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_gegenbauer", 1, 3, 3, 1); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_gegenbauer", 1, 3, 3, 2); __PYX_ERR(1, 2082, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_gegenbauer") < 0)) __PYX_ERR(1, 2082, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2082, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_gegenbauer", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2082, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_636__pyx_fuse_1_1eval_gegenbauer(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_636__pyx_fuse_1_1eval_gegenbauer(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_gegenbauer", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_gegenbauer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2096
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_genlaguerre(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_121eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_120eval_genlaguerre[] = "See the documentation for scipy.special.eval_genlaguerre";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_121eval_genlaguerre = {"eval_genlaguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_121eval_genlaguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_120eval_genlaguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_121eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2096, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2096, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_120eval_genlaguerre(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_120eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_genlaguerre", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2096, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2096, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2096, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2096, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2096, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2096, __pyx_L1_error)
  __pyx_t_2 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2096, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x2, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2096, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2096, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2096, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2096, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2096, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2096, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2096, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2096, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2096, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2096, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2096, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_641__pyx_fuse_0_0eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_121eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2099
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_genlaguerre[double_complex](x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_genlaguerre[double](x0, x1, x2)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2096
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_genlaguerre(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_641__pyx_fuse_0_0eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_641__pyx_fuse_0_0eval_genlaguerre = {"__pyx_fuse_0_0eval_genlaguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_641__pyx_fuse_0_0eval_genlaguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_120eval_genlaguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_641__pyx_fuse_0_0eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  __pyx_t_double_complex __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_genlaguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_genlaguerre", 1, 3, 3, 1); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_genlaguerre", 1, 3, 3, 2); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_genlaguerre") < 0)) __PYX_ERR(1, 2096, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x2 = __Pyx_PyComplex_As___pyx_t_double_complex(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_genlaguerre", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2096, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_640__pyx_fuse_0_0eval_genlaguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_640__pyx_fuse_0_0eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_genlaguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_643__pyx_fuse_0_1eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_121eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2101
 *         return _func_eval_genlaguerre[double_complex](x0, x1, x2)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_genlaguerre[double](x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_genlaguerre_l(x0, x1, x2)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2096
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_genlaguerre(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_643__pyx_fuse_0_1eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_643__pyx_fuse_0_1eval_genlaguerre = {"__pyx_fuse_0_1eval_genlaguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_643__pyx_fuse_0_1eval_genlaguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_120eval_genlaguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_643__pyx_fuse_0_1eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_genlaguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_genlaguerre", 1, 3, 3, 1); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_genlaguerre", 1, 3, 3, 2); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_genlaguerre") < 0)) __PYX_ERR(1, 2096, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_genlaguerre", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2096, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_642__pyx_fuse_0_1eval_genlaguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_642__pyx_fuse_0_1eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_genlaguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_645__pyx_fuse_1_0eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_121eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED double __pyx_v_x1, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2106
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2096
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_genlaguerre(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_645__pyx_fuse_1_0eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_645__pyx_fuse_1_0eval_genlaguerre = {"__pyx_fuse_1_0eval_genlaguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_645__pyx_fuse_1_0eval_genlaguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_120eval_genlaguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_645__pyx_fuse_1_0eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  __pyx_t_double_complex __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_genlaguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_genlaguerre", 1, 3, 3, 1); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_genlaguerre", 1, 3, 3, 2); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_genlaguerre") < 0)) __PYX_ERR(1, 2096, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x2 = __Pyx_PyComplex_As___pyx_t_double_complex(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_genlaguerre", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2096, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_644__pyx_fuse_1_0eval_genlaguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_644__pyx_fuse_1_0eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_genlaguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_647__pyx_fuse_1_1eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_121eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2103
 *         return _func_eval_genlaguerre[double](x0, x1, x2)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_genlaguerre_l(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre_l(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2096
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_genlaguerre(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_647__pyx_fuse_1_1eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_647__pyx_fuse_1_1eval_genlaguerre = {"__pyx_fuse_1_1eval_genlaguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_647__pyx_fuse_1_1eval_genlaguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_120eval_genlaguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_647__pyx_fuse_1_1eval_genlaguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_genlaguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_genlaguerre", 1, 3, 3, 1); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_genlaguerre", 1, 3, 3, 2); __PYX_ERR(1, 2096, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_genlaguerre") < 0)) __PYX_ERR(1, 2096, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2096, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_genlaguerre", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2096, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_646__pyx_fuse_1_1eval_genlaguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_646__pyx_fuse_1_1eval_genlaguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_genlaguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_genlaguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2110
 *             return NPY_NAN
 * 
 * cpdef double eval_hermite(long x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_hermite"""
 *     return _func_eval_hermite(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_123eval_hermite(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_eval_hermite(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2112
 * cpdef double eval_hermite(long x0, double x1) nogil:
 *     """See the documentation for scipy.special.eval_hermite"""
 *     return _func_eval_hermite(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double eval_hermitenorm(long x0, double x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_hermite(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2110
 *             return NPY_NAN
 * 
 * cpdef double eval_hermite(long x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_hermite"""
 *     return _func_eval_hermite(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_123eval_hermite(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_122eval_hermite[] = "See the documentation for scipy.special.eval_hermite";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_123eval_hermite(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("eval_hermite (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("eval_hermite", 1, 2, 2, 1); __PYX_ERR(1, 2110, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "eval_hermite") < 0)) __PYX_ERR(1, 2110, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2110, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2110, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("eval_hermite", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2110, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.eval_hermite", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_122eval_hermite(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_122eval_hermite(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_hermite", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_eval_hermite(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.eval_hermite", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2114
 *     return _func_eval_hermite(x0, x1)
 * 
 * cpdef double eval_hermitenorm(long x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_hermitenorm"""
 *     return _func_eval_hermitenorm(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_125eval_hermitenorm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_eval_hermitenorm(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2116
 * cpdef double eval_hermitenorm(long x0, double x1) nogil:
 *     """See the documentation for scipy.special.eval_hermitenorm"""
 *     return _func_eval_hermitenorm(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_hermitenorm(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2114
 *     return _func_eval_hermite(x0, x1)
 * 
 * cpdef double eval_hermitenorm(long x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_hermitenorm"""
 *     return _func_eval_hermitenorm(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_125eval_hermitenorm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_124eval_hermitenorm[] = "See the documentation for scipy.special.eval_hermitenorm";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_125eval_hermitenorm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("eval_hermitenorm (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("eval_hermitenorm", 1, 2, 2, 1); __PYX_ERR(1, 2114, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "eval_hermitenorm") < 0)) __PYX_ERR(1, 2114, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2114, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2114, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("eval_hermitenorm", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2114, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.eval_hermitenorm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_124eval_hermitenorm(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_124eval_hermitenorm(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_hermitenorm", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_eval_hermitenorm(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.eval_hermitenorm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2118
 *     return _func_eval_hermitenorm(x0, x1)
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_127eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_126eval_jacobi[] = "See the documentation for scipy.special.eval_jacobi";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_127eval_jacobi = {"eval_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_127eval_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_126eval_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_127eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2118, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2118, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_126eval_jacobi(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_126eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_jacobi", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2118, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2118, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2118, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2118, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2118, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2118, __pyx_L1_error)
  __pyx_t_2 = ((3 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2118, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x3, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2118, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2118, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2118, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2118, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2118, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2118, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2118, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2118, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2118, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2118, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2118, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_651__pyx_fuse_0_0eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_127eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2121
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_jacobi[double_complex](x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_jacobi[double](x0, x1, x2, x3)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2118
 *     return _func_eval_hermitenorm(x0, x1)
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_651__pyx_fuse_0_0eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_651__pyx_fuse_0_0eval_jacobi = {"__pyx_fuse_0_0eval_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_651__pyx_fuse_0_0eval_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_126eval_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_651__pyx_fuse_0_0eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  __pyx_t_double_complex __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_jacobi") < 0)) __PYX_ERR(1, 2118, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x3 = __Pyx_PyComplex_As___pyx_t_double_complex(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2118, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_650__pyx_fuse_0_0eval_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_650__pyx_fuse_0_0eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_653__pyx_fuse_0_1eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_127eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2123
 *         return _func_eval_jacobi[double_complex](x0, x1, x2, x3)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_jacobi[double](x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_jacobi_l(x0, x1, x2, x3)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2118
 *     return _func_eval_hermitenorm(x0, x1)
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_653__pyx_fuse_0_1eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_653__pyx_fuse_0_1eval_jacobi = {"__pyx_fuse_0_1eval_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_653__pyx_fuse_0_1eval_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_126eval_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_653__pyx_fuse_0_1eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_jacobi") < 0)) __PYX_ERR(1, 2118, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2118, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_652__pyx_fuse_0_1eval_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_652__pyx_fuse_0_1eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_655__pyx_fuse_1_0eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_127eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED double __pyx_v_x1, CYTHON_UNUSED double __pyx_v_x2, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2128
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2118
 *     return _func_eval_hermitenorm(x0, x1)
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_655__pyx_fuse_1_0eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_655__pyx_fuse_1_0eval_jacobi = {"__pyx_fuse_1_0eval_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_655__pyx_fuse_1_0eval_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_126eval_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_655__pyx_fuse_1_0eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  __pyx_t_double_complex __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_jacobi") < 0)) __PYX_ERR(1, 2118, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x3 = __Pyx_PyComplex_As___pyx_t_double_complex(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2118, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_654__pyx_fuse_1_0eval_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_654__pyx_fuse_1_0eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_657__pyx_fuse_1_1eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_127eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi(long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2125
 *         return _func_eval_jacobi[double](x0, x1, x2, x3)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_jacobi_l(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi_l(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2118
 *     return _func_eval_hermitenorm(x0, x1)
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_657__pyx_fuse_1_1eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_657__pyx_fuse_1_1eval_jacobi = {"__pyx_fuse_1_1eval_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_657__pyx_fuse_1_1eval_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_126eval_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_657__pyx_fuse_1_1eval_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_jacobi") < 0)) __PYX_ERR(1, 2118, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2118, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2118, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_656__pyx_fuse_1_1eval_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_656__pyx_fuse_1_1eval_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2132
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_laguerre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_129eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_128eval_laguerre[] = "See the documentation for scipy.special.eval_laguerre";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_129eval_laguerre = {"eval_laguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_129eval_laguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_128eval_laguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_129eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2132, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2132, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2132, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2132, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2132, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_128eval_laguerre(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_128eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_laguerre", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2132, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2132, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2132, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2132, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2132, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2132, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2132, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2132, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2132, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2132, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2132, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2132, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2132, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2132, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2132, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2132, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2132, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2132, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_661__pyx_fuse_0_0eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_129eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2135
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_laguerre[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_laguerre[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2132
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_laguerre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_661__pyx_fuse_0_0eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_661__pyx_fuse_0_0eval_laguerre = {"__pyx_fuse_0_0eval_laguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_661__pyx_fuse_0_0eval_laguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_128eval_laguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_661__pyx_fuse_0_0eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_laguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_laguerre", 1, 2, 2, 1); __PYX_ERR(1, 2132, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_laguerre") < 0)) __PYX_ERR(1, 2132, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_laguerre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2132, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_660__pyx_fuse_0_0eval_laguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_660__pyx_fuse_0_0eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_laguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_663__pyx_fuse_0_1eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_129eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2137
 *         return _func_eval_laguerre[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_laguerre[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_laguerre_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2132
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_laguerre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_663__pyx_fuse_0_1eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_663__pyx_fuse_0_1eval_laguerre = {"__pyx_fuse_0_1eval_laguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_663__pyx_fuse_0_1eval_laguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_128eval_laguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_663__pyx_fuse_0_1eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_laguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_laguerre", 1, 2, 2, 1); __PYX_ERR(1, 2132, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_laguerre") < 0)) __PYX_ERR(1, 2132, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_laguerre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2132, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_662__pyx_fuse_0_1eval_laguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_662__pyx_fuse_0_1eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_laguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_665__pyx_fuse_1_0eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_129eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2142
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2132
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_laguerre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_665__pyx_fuse_1_0eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_665__pyx_fuse_1_0eval_laguerre = {"__pyx_fuse_1_0eval_laguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_665__pyx_fuse_1_0eval_laguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_128eval_laguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_665__pyx_fuse_1_0eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_laguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_laguerre", 1, 2, 2, 1); __PYX_ERR(1, 2132, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_laguerre") < 0)) __PYX_ERR(1, 2132, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_laguerre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2132, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_664__pyx_fuse_1_0eval_laguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_664__pyx_fuse_1_0eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_laguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_667__pyx_fuse_1_1eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_129eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2139
 *         return _func_eval_laguerre[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_laguerre_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2132
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_laguerre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_667__pyx_fuse_1_1eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_667__pyx_fuse_1_1eval_laguerre = {"__pyx_fuse_1_1eval_laguerre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_667__pyx_fuse_1_1eval_laguerre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_128eval_laguerre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_667__pyx_fuse_1_1eval_laguerre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_laguerre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_laguerre", 1, 2, 2, 1); __PYX_ERR(1, 2132, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_laguerre") < 0)) __PYX_ERR(1, 2132, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2132, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_laguerre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2132, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_666__pyx_fuse_1_1eval_laguerre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_666__pyx_fuse_1_1eval_laguerre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_laguerre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_laguerre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2146
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_131eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_130eval_legendre[] = "See the documentation for scipy.special.eval_legendre";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_131eval_legendre = {"eval_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_131eval_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_130eval_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_131eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2146, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2146, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2146, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2146, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2146, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_130eval_legendre(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_130eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_legendre", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2146, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2146, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2146, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2146, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2146, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2146, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2146, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2146, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2146, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2146, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2146, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2146, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2146, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2146, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2146, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2146, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2146, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2146, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_671__pyx_fuse_0_0eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_131eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_legendre(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2149
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_legendre[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_legendre[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2146
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_671__pyx_fuse_0_0eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_671__pyx_fuse_0_0eval_legendre = {"__pyx_fuse_0_0eval_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_671__pyx_fuse_0_0eval_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_130eval_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_671__pyx_fuse_0_0eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2146, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_legendre") < 0)) __PYX_ERR(1, 2146, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2146, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_670__pyx_fuse_0_0eval_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_670__pyx_fuse_0_0eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_legendre(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_673__pyx_fuse_0_1eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_131eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_legendre(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2151
 *         return _func_eval_legendre[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_legendre[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_legendre_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2146
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_673__pyx_fuse_0_1eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_673__pyx_fuse_0_1eval_legendre = {"__pyx_fuse_0_1eval_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_673__pyx_fuse_0_1eval_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_130eval_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_673__pyx_fuse_0_1eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2146, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_legendre") < 0)) __PYX_ERR(1, 2146, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2146, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_672__pyx_fuse_0_1eval_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_672__pyx_fuse_0_1eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_legendre(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_675__pyx_fuse_1_0eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_131eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_legendre(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2156
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2146
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_675__pyx_fuse_1_0eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_675__pyx_fuse_1_0eval_legendre = {"__pyx_fuse_1_0eval_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_675__pyx_fuse_1_0eval_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_130eval_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_675__pyx_fuse_1_0eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2146, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_legendre") < 0)) __PYX_ERR(1, 2146, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2146, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_674__pyx_fuse_1_0eval_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_674__pyx_fuse_1_0eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_legendre(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_677__pyx_fuse_1_1eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_131eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_legendre(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2153
 *         return _func_eval_legendre[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_legendre_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2146
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_677__pyx_fuse_1_1eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_677__pyx_fuse_1_1eval_legendre = {"__pyx_fuse_1_1eval_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_677__pyx_fuse_1_1eval_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_130eval_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_677__pyx_fuse_1_1eval_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2146, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_legendre") < 0)) __PYX_ERR(1, 2146, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2146, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2146, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_676__pyx_fuse_1_1eval_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_676__pyx_fuse_1_1eval_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_legendre(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2160
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_133eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_132eval_sh_chebyt[] = "See the documentation for scipy.special.eval_sh_chebyt";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_133eval_sh_chebyt = {"eval_sh_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_133eval_sh_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_132eval_sh_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_133eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2160, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2160, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2160, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2160, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_132eval_sh_chebyt(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_132eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_sh_chebyt", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2160, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2160, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2160, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2160, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2160, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2160, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2160, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2160, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2160, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2160, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2160, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2160, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2160, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2160, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2160, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2160, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2160, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2160, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_681__pyx_fuse_0_0eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_133eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2163
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_sh_chebyt[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_chebyt[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2160
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_681__pyx_fuse_0_0eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_681__pyx_fuse_0_0eval_sh_chebyt = {"__pyx_fuse_0_0eval_sh_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_681__pyx_fuse_0_0eval_sh_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_132eval_sh_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_681__pyx_fuse_0_0eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2160, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_sh_chebyt") < 0)) __PYX_ERR(1, 2160, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2160, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_680__pyx_fuse_0_0eval_sh_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_680__pyx_fuse_0_0eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_683__pyx_fuse_0_1eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_133eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2165
 *         return _func_eval_sh_chebyt[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_chebyt[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_chebyt_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2160
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_683__pyx_fuse_0_1eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_683__pyx_fuse_0_1eval_sh_chebyt = {"__pyx_fuse_0_1eval_sh_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_683__pyx_fuse_0_1eval_sh_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_132eval_sh_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_683__pyx_fuse_0_1eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2160, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_sh_chebyt") < 0)) __PYX_ERR(1, 2160, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2160, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_682__pyx_fuse_0_1eval_sh_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_682__pyx_fuse_0_1eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_685__pyx_fuse_1_0eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_133eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2170
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2160
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_685__pyx_fuse_1_0eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_685__pyx_fuse_1_0eval_sh_chebyt = {"__pyx_fuse_1_0eval_sh_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_685__pyx_fuse_1_0eval_sh_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_132eval_sh_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_685__pyx_fuse_1_0eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2160, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_sh_chebyt") < 0)) __PYX_ERR(1, 2160, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2160, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_684__pyx_fuse_1_0eval_sh_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_684__pyx_fuse_1_0eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_687__pyx_fuse_1_1eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_133eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2167
 *         return _func_eval_sh_chebyt[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_chebyt_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2160
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_687__pyx_fuse_1_1eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_687__pyx_fuse_1_1eval_sh_chebyt = {"__pyx_fuse_1_1eval_sh_chebyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_687__pyx_fuse_1_1eval_sh_chebyt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_132eval_sh_chebyt};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_687__pyx_fuse_1_1eval_sh_chebyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_chebyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_chebyt", 1, 2, 2, 1); __PYX_ERR(1, 2160, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_sh_chebyt") < 0)) __PYX_ERR(1, 2160, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2160, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_chebyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2160, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_686__pyx_fuse_1_1eval_sh_chebyt(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_686__pyx_fuse_1_1eval_sh_chebyt(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_chebyt", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_chebyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2174
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_135eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_134eval_sh_chebyu[] = "See the documentation for scipy.special.eval_sh_chebyu";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_135eval_sh_chebyu = {"eval_sh_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_135eval_sh_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_134eval_sh_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_135eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2174, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2174, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2174, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2174, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2174, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_134eval_sh_chebyu(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_134eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_sh_chebyu", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2174, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2174, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2174, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2174, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2174, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2174, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2174, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2174, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2174, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2174, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2174, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2174, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2174, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2174, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2174, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2174, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2174, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2174, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2174, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_691__pyx_fuse_0_0eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_135eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2177
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_sh_chebyu[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_chebyu[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2174
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_691__pyx_fuse_0_0eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_691__pyx_fuse_0_0eval_sh_chebyu = {"__pyx_fuse_0_0eval_sh_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_691__pyx_fuse_0_0eval_sh_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_134eval_sh_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_691__pyx_fuse_0_0eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2174, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_sh_chebyu") < 0)) __PYX_ERR(1, 2174, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2174, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_690__pyx_fuse_0_0eval_sh_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_690__pyx_fuse_0_0eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_693__pyx_fuse_0_1eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_135eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2179
 *         return _func_eval_sh_chebyu[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_chebyu[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_chebyu_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2174
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_693__pyx_fuse_0_1eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_693__pyx_fuse_0_1eval_sh_chebyu = {"__pyx_fuse_0_1eval_sh_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_693__pyx_fuse_0_1eval_sh_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_134eval_sh_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_693__pyx_fuse_0_1eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2174, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_sh_chebyu") < 0)) __PYX_ERR(1, 2174, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2174, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_692__pyx_fuse_0_1eval_sh_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_692__pyx_fuse_0_1eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_695__pyx_fuse_1_0eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_135eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2184
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2174
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_695__pyx_fuse_1_0eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_695__pyx_fuse_1_0eval_sh_chebyu = {"__pyx_fuse_1_0eval_sh_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_695__pyx_fuse_1_0eval_sh_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_134eval_sh_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_695__pyx_fuse_1_0eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2174, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_sh_chebyu") < 0)) __PYX_ERR(1, 2174, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2174, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_694__pyx_fuse_1_0eval_sh_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_694__pyx_fuse_1_0eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_697__pyx_fuse_1_1eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_135eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2181
 *         return _func_eval_sh_chebyu[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_chebyu_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2174
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_697__pyx_fuse_1_1eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_697__pyx_fuse_1_1eval_sh_chebyu = {"__pyx_fuse_1_1eval_sh_chebyu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_697__pyx_fuse_1_1eval_sh_chebyu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_134eval_sh_chebyu};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_697__pyx_fuse_1_1eval_sh_chebyu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_chebyu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_chebyu", 1, 2, 2, 1); __PYX_ERR(1, 2174, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_sh_chebyu") < 0)) __PYX_ERR(1, 2174, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2174, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_chebyu", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2174, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_696__pyx_fuse_1_1eval_sh_chebyu(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_696__pyx_fuse_1_1eval_sh_chebyu(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_chebyu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_chebyu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2188
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_137eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_136eval_sh_jacobi[] = "See the documentation for scipy.special.eval_sh_jacobi";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_137eval_sh_jacobi = {"eval_sh_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_137eval_sh_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_136eval_sh_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_137eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2188, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2188, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_136eval_sh_jacobi(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_136eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_sh_jacobi", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2188, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2188, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2188, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2188, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2188, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2188, __pyx_L1_error)
  __pyx_t_2 = ((3 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2188, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x3, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2188, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2188, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2188, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2188, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2188, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2188, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2188, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2188, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2188, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2188, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2188, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2188, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_701__pyx_fuse_0_0eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_137eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2191
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_sh_jacobi[double_complex](x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_jacobi[double](x0, x1, x2, x3)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2188
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_701__pyx_fuse_0_0eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_701__pyx_fuse_0_0eval_sh_jacobi = {"__pyx_fuse_0_0eval_sh_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_701__pyx_fuse_0_0eval_sh_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_136eval_sh_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_701__pyx_fuse_0_0eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  __pyx_t_double_complex __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_sh_jacobi") < 0)) __PYX_ERR(1, 2188, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x3 = __Pyx_PyComplex_As___pyx_t_double_complex(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2188, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_700__pyx_fuse_0_0eval_sh_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_700__pyx_fuse_0_0eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_703__pyx_fuse_0_1eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_137eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2193
 *         return _func_eval_sh_jacobi[double_complex](x0, x1, x2, x3)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_jacobi[double](x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_jacobi_l(x0, x1, x2, x3)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2188
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_703__pyx_fuse_0_1eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_703__pyx_fuse_0_1eval_sh_jacobi = {"__pyx_fuse_0_1eval_sh_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_703__pyx_fuse_0_1eval_sh_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_136eval_sh_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_703__pyx_fuse_0_1eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_sh_jacobi") < 0)) __PYX_ERR(1, 2188, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2188, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_702__pyx_fuse_0_1eval_sh_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_702__pyx_fuse_0_1eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_705__pyx_fuse_1_0eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_137eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED double __pyx_v_x1, CYTHON_UNUSED double __pyx_v_x2, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2198
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2188
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_705__pyx_fuse_1_0eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_705__pyx_fuse_1_0eval_sh_jacobi = {"__pyx_fuse_1_0eval_sh_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_705__pyx_fuse_1_0eval_sh_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_136eval_sh_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_705__pyx_fuse_1_0eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  __pyx_t_double_complex __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_sh_jacobi") < 0)) __PYX_ERR(1, 2188, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x3 = __Pyx_PyComplex_As___pyx_t_double_complex(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2188, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_704__pyx_fuse_1_0eval_sh_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_704__pyx_fuse_1_0eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_707__pyx_fuse_1_1eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_137eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2195
 *         return _func_eval_sh_jacobi[double](x0, x1, x2, x3)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_jacobi_l(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi_l(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2188
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_707__pyx_fuse_1_1eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_707__pyx_fuse_1_1eval_sh_jacobi = {"__pyx_fuse_1_1eval_sh_jacobi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_707__pyx_fuse_1_1eval_sh_jacobi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_136eval_sh_jacobi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_707__pyx_fuse_1_1eval_sh_jacobi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_jacobi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_jacobi", 1, 4, 4, 1); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_jacobi", 1, 4, 4, 2); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_jacobi", 1, 4, 4, 3); __PYX_ERR(1, 2188, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_sh_jacobi") < 0)) __PYX_ERR(1, 2188, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2188, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_jacobi", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2188, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_706__pyx_fuse_1_1eval_sh_jacobi(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_706__pyx_fuse_1_1eval_sh_jacobi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_jacobi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_jacobi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2202
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_139eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_138eval_sh_legendre[] = "See the documentation for scipy.special.eval_sh_legendre";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_139eval_sh_legendre = {"eval_sh_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_139eval_sh_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_138eval_sh_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_139eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2202, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2202, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2202, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2202, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2202, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_138eval_sh_legendre(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_138eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eval_sh_legendre", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2202, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2202, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2202, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2202, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2202, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2202, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2202, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2202, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L15;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2202, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2202, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_L15:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
      goto __pyx_L19_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
    goto __pyx_L19_break;
  }
  __pyx_L19_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_7, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_6 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2202, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2202, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2202, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L27;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L25_break;
        }
        __pyx_L27:;
      }
    }
    __pyx_L25_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2202, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2202, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 2202, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2202, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_711__pyx_fuse_0_0eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_139eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2205
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 *         return _func_eval_sh_legendre[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_legendre[double](x0, x1)
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2202
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_711__pyx_fuse_0_0eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_711__pyx_fuse_0_0eval_sh_legendre = {"__pyx_fuse_0_0eval_sh_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_711__pyx_fuse_0_0eval_sh_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_138eval_sh_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_711__pyx_fuse_0_0eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2202, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_0eval_sh_legendre") < 0)) __PYX_ERR(1, 2202, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_0eval_sh_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2202, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_710__pyx_fuse_0_0eval_sh_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_710__pyx_fuse_0_0eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0eval_sh_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_0eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_713__pyx_fuse_0_1eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_139eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2207
 *         return _func_eval_sh_legendre[double_complex](x0, x1)
 *     elif dl_number_t is double and Dd_number_t is double:
 *         return _func_eval_sh_legendre[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_legendre_l(x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2202
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_713__pyx_fuse_0_1eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_713__pyx_fuse_0_1eval_sh_legendre = {"__pyx_fuse_0_1eval_sh_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_713__pyx_fuse_0_1eval_sh_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_138eval_sh_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_713__pyx_fuse_0_1eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2202, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0_1eval_sh_legendre") < 0)) __PYX_ERR(1, 2202, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0_1eval_sh_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2202, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_712__pyx_fuse_0_1eval_sh_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_712__pyx_fuse_0_1eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1eval_sh_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0_1eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_715__pyx_fuse_1_0eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_139eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(CYTHON_UNUSED long __pyx_v_x0, CYTHON_UNUSED __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2212
 *     else:
 *         if Dd_number_t is double_complex:
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         else:
 *             return NPY_NAN
 */
  __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2202
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_715__pyx_fuse_1_0eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_715__pyx_fuse_1_0eval_sh_legendre = {"__pyx_fuse_1_0eval_sh_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_715__pyx_fuse_1_0eval_sh_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_138eval_sh_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_715__pyx_fuse_1_0eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2202, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_0eval_sh_legendre") < 0)) __PYX_ERR(1, 2202, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_0eval_sh_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2202, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_714__pyx_fuse_1_0eval_sh_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_714__pyx_fuse_1_0eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0eval_sh_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_0eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_717__pyx_fuse_1_1eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_139eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2209
 *         return _func_eval_sh_legendre[double](x0, x1)
 *     elif dl_number_t is long and Dd_number_t is double:
 *         return _func_eval_sh_legendre_l(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2202
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_717__pyx_fuse_1_1eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_717__pyx_fuse_1_1eval_sh_legendre = {"__pyx_fuse_1_1eval_sh_legendre", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_717__pyx_fuse_1_1eval_sh_legendre, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_138eval_sh_legendre};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_717__pyx_fuse_1_1eval_sh_legendre(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_legendre (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_legendre", 1, 2, 2, 1); __PYX_ERR(1, 2202, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1_1eval_sh_legendre") < 0)) __PYX_ERR(1, 2202, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2202, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1_1eval_sh_legendre", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2202, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_716__pyx_fuse_1_1eval_sh_legendre(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_716__pyx_fuse_1_1eval_sh_legendre(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1eval_sh_legendre", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1_1eval_sh_legendre", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2216
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t exp1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp1"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_141exp1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_140exp1[] = "See the documentation for scipy.special.exp1";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_141exp1 = {"exp1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_141exp1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_140exp1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_141exp1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2216, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2216, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2216, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2216, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2216, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_140exp1(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_140exp1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("exp1", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2216, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2216, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2216, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2216, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2216, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2216, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2216, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2216, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2216, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2216, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2216, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2216, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2216, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2216, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2216, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2216, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2216, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2216, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2216, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2216, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2216, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_721__pyx_fuse_0exp1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_141exp1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_exp1(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2219
 *     """See the documentation for scipy.special.exp1"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cexp1_wrap(_complexstuff.npy_cdouble_from_double_complex(x0)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_exp1_wrap(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cexp1_wrap(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x0)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2216
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t exp1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp1"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_721__pyx_fuse_0exp1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_721__pyx_fuse_0exp1 = {"__pyx_fuse_0exp1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_721__pyx_fuse_0exp1, METH_O, __pyx_doc_5scipy_7special_14cython_special_140exp1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_721__pyx_fuse_0exp1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0exp1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2216, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0exp1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_720__pyx_fuse_0exp1(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_720__pyx_fuse_0exp1(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0exp1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_exp1(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0exp1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_723__pyx_fuse_1exp1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_141exp1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_exp1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2221
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cexp1_wrap(_complexstuff.npy_cdouble_from_double_complex(x0)))
 *     elif Dd_number_t is double:
 *         return _func_exp1_wrap(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = exp1_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2216
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t exp1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp1"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_723__pyx_fuse_1exp1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_723__pyx_fuse_1exp1 = {"__pyx_fuse_1exp1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_723__pyx_fuse_1exp1, METH_O, __pyx_doc_5scipy_7special_14cython_special_140exp1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_723__pyx_fuse_1exp1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1exp1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2216, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1exp1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_722__pyx_fuse_1exp1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_722__pyx_fuse_1exp1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1exp1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_exp1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1exp1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2228
 *             return NPY_NAN
 * 
 * cpdef double exp10(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp10"""
 *     return _func_exp10(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_143exp10(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_exp10(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2230
 * cpdef double exp10(double x0) nogil:
 *     """See the documentation for scipy.special.exp10"""
 *     return _func_exp10(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double exp2(double x0) nogil:
 */
  __pyx_r = exp10(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2228
 *             return NPY_NAN
 * 
 * cpdef double exp10(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp10"""
 *     return _func_exp10(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_143exp10(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_142exp10[] = "See the documentation for scipy.special.exp10";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_143exp10(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("exp10 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2228, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.exp10", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_142exp10(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_142exp10(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("exp10", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_exp10(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.exp10", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2232
 *     return _func_exp10(x0)
 * 
 * cpdef double exp2(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp2"""
 *     return _func_exp2(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_145exp2(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_exp2(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2234
 * cpdef double exp2(double x0) nogil:
 *     """See the documentation for scipy.special.exp2"""
 *     return _func_exp2(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t expi(Dd_number_t x0) nogil:
 */
  __pyx_r = exp2(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2232
 *     return _func_exp10(x0)
 * 
 * cpdef double exp2(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp2"""
 *     return _func_exp2(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_145exp2(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_144exp2[] = "See the documentation for scipy.special.exp2";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_145exp2(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("exp2 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2232, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.exp2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_144exp2(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_144exp2(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("exp2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_exp2(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.exp2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2236
 *     return _func_exp2(x0)
 * 
 * cpdef Dd_number_t expi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expi"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_147expi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_146expi[] = "See the documentation for scipy.special.expi";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_147expi = {"expi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_147expi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_146expi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_147expi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2236, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2236, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2236, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2236, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2236, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_146expi(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_146expi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expi", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2236, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2236, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2236, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2236, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2236, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2236, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2236, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2236, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2236, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2236, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2236, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2236, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2236, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2236, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2236, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2236, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2236, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2236, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2236, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2236, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2236, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_727__pyx_fuse_0expi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_147expi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expi(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2239
 *     """See the documentation for scipy.special.expi"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cexpi_wrap(_complexstuff.npy_cdouble_from_double_complex(x0)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_expi_wrap(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cexpi_wrap(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x0)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2236
 *     return _func_exp2(x0)
 * 
 * cpdef Dd_number_t expi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expi"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_727__pyx_fuse_0expi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_727__pyx_fuse_0expi = {"__pyx_fuse_0expi", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_727__pyx_fuse_0expi, METH_O, __pyx_doc_5scipy_7special_14cython_special_146expi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_727__pyx_fuse_0expi(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0expi (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2236, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_726__pyx_fuse_0expi(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_726__pyx_fuse_0expi(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0expi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expi(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_729__pyx_fuse_1expi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_147expi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expi(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2241
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cexpi_wrap(_complexstuff.npy_cdouble_from_double_complex(x0)))
 *     elif Dd_number_t is double:
 *         return _func_expi_wrap(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = expi_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2236
 *     return _func_exp2(x0)
 * 
 * cpdef Dd_number_t expi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expi"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_729__pyx_fuse_1expi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_729__pyx_fuse_1expi = {"__pyx_fuse_1expi", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_729__pyx_fuse_1expi, METH_O, __pyx_doc_5scipy_7special_14cython_special_146expi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_729__pyx_fuse_1expi(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1expi (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2236, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_728__pyx_fuse_1expi(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_728__pyx_fuse_1expi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1expi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expi(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2248
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t expit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expit"""
 *     if dfg_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_149expit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_148expit[] = "See the documentation for scipy.special.expit";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_149expit = {"expit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_149expit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_148expit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_149expit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2248, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2248, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2248, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2248, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2248, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_148expit(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_148expit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expit", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2248, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2248, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2248, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2248, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2248, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2248, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2248, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2248, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_long_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2248, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2248, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2248, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2248, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2248, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2248, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L17;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L15_break;
        }
        __pyx_L17:;
      }
    }
    __pyx_L15_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2248, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2248, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2248, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2248, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2248, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_733__pyx_fuse_0expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_149expit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expit(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2251
 *     """See the documentation for scipy.special.expit"""
 *     if dfg_number_t is double:
 *         return _func_expit(x0)             # <<<<<<<<<<<<<<
 *     elif dfg_number_t is float:
 *         return _func_expitf(x0)
 */
  __pyx_r = expit(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2248
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t expit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expit"""
 *     if dfg_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_733__pyx_fuse_0expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_733__pyx_fuse_0expit = {"__pyx_fuse_0expit", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_733__pyx_fuse_0expit, METH_O, __pyx_doc_5scipy_7special_14cython_special_148expit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_733__pyx_fuse_0expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0expit (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2248, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_732__pyx_fuse_0expit(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_732__pyx_fuse_0expit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0expit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expit(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_735__pyx_fuse_1expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_149expit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static float __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expit(float __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  float __pyx_r;

  /* "scipy/special/cython_special.pyx":2253
 *         return _func_expit(x0)
 *     elif dfg_number_t is float:
 *         return _func_expitf(x0)             # <<<<<<<<<<<<<<
 *     elif dfg_number_t is long_double:
 *         return _func_expitl(x0)
 */
  __pyx_r = expitf(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2248
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t expit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expit"""
 *     if dfg_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_735__pyx_fuse_1expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_735__pyx_fuse_1expit = {"__pyx_fuse_1expit", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_735__pyx_fuse_1expit, METH_O, __pyx_doc_5scipy_7special_14cython_special_148expit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_735__pyx_fuse_1expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  float __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1expit (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsFloat(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(1, 2248, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_734__pyx_fuse_1expit(__pyx_self, ((float)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_734__pyx_fuse_1expit(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1expit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expit(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_737__pyx_fuse_2expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_149expit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static long double __pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_expit(long double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  long double __pyx_r;

  /* "scipy/special/cython_special.pyx":2255
 *         return _func_expitf(x0)
 *     elif dfg_number_t is long_double:
 *         return _func_expitl(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if dfg_number_t is double:
 */
  __pyx_r = expitl(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2248
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t expit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expit"""
 *     if dfg_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_737__pyx_fuse_2expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_5scipy_7special_14cython_special_737__pyx_fuse_2expit = {"__pyx_fuse_2expit", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_737__pyx_fuse_2expit, METH_O, __pyx_doc_5scipy_7special_14cython_special_148expit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_737__pyx_fuse_2expit(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  long double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2expit (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (long double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2248, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_2expit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_736__pyx_fuse_2expit(__pyx_self, ((long double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_736__pyx_fuse_2expit(CYTHON_UNUSED PyObject *__pyx_self, long double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_2expit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_expit(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_2expit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2264
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t expm1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expm1"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_151expm1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_150expm1[] = "See the documentation for scipy.special.expm1";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_151expm1 = {"expm1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_151expm1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_150expm1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_151expm1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2264, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2264, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2264, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2264, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2264, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_150expm1(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_150expm1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expm1", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2264, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2264, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2264, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2264, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2264, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2264, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2264, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2264, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2264, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2264, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2264, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2264, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2264, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2264, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2264, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2264, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2264, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2264, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2264, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2264, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_741__pyx_fuse_0expm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_151expm1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expm1(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2267
 *     """See the documentation for scipy.special.expm1"""
 *     if Dd_number_t is double_complex:
 *         return _func_cexpm1(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_expm1(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_cunity_cexpm1(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2264
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t expm1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expm1"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_741__pyx_fuse_0expm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_741__pyx_fuse_0expm1 = {"__pyx_fuse_0expm1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_741__pyx_fuse_0expm1, METH_O, __pyx_doc_5scipy_7special_14cython_special_150expm1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_741__pyx_fuse_0expm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0expm1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2264, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_740__pyx_fuse_0expm1(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_740__pyx_fuse_0expm1(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0expm1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expm1(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_743__pyx_fuse_1expm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_151expm1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expm1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2269
 *         return _func_cexpm1(x0)
 *     elif Dd_number_t is double:
 *         return _func_expm1(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = expm1(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2264
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t expm1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expm1"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_743__pyx_fuse_1expm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_743__pyx_fuse_1expm1 = {"__pyx_fuse_1expm1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_743__pyx_fuse_1expm1, METH_O, __pyx_doc_5scipy_7special_14cython_special_150expm1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_743__pyx_fuse_1expm1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1expm1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2264, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_742__pyx_fuse_1expm1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_742__pyx_fuse_1expm1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1expm1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expm1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expm1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2276
 *             return NPY_NAN
 * 
 * cpdef double expn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expn"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_153expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_152expn[] = "See the documentation for scipy.special.expn";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_153expn = {"expn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_153expn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_152expn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_153expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2276, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2276, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2276, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2276, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2276, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_152expn(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_152expn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("expn", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2276, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2276, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2276, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2276, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2276, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2276, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2276, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2276, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2276, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2276, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2276, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2276, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2276, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2276, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2276, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2276, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2276, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2276, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2276, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2276, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_747__pyx_fuse_0expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_153expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expn(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2279
 *     """See the documentation for scipy.special.expn"""
 *     if dl_number_t is double:
 *         return _func_expn_unsafe(x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_expn(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_expn_unsafe(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2276
 *             return NPY_NAN
 * 
 * cpdef double expn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expn"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_747__pyx_fuse_0expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_747__pyx_fuse_0expn = {"__pyx_fuse_0expn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_747__pyx_fuse_0expn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_152expn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_747__pyx_fuse_0expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0expn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0expn", 1, 2, 2, 1); __PYX_ERR(1, 2276, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0expn") < 0)) __PYX_ERR(1, 2276, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2276, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2276, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0expn", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2276, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_746__pyx_fuse_0expn(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_746__pyx_fuse_0expn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0expn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expn(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0expn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_749__pyx_fuse_1expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_153expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expn(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2281
 *         return _func_expn_unsafe(x0, x1)
 *     elif dl_number_t is long:
 *         return _func_expn(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = expn(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2276
 *             return NPY_NAN
 * 
 * cpdef double expn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expn"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_749__pyx_fuse_1expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_749__pyx_fuse_1expn = {"__pyx_fuse_1expn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_749__pyx_fuse_1expn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_152expn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_749__pyx_fuse_1expn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1expn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1expn", 1, 2, 2, 1); __PYX_ERR(1, 2276, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1expn") < 0)) __PYX_ERR(1, 2276, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2276, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2276, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1expn", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2276, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_748__pyx_fuse_1expn(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_748__pyx_fuse_1expn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1expn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expn(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1expn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2285
 *         return NPY_NAN
 * 
 * cpdef double exprel(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exprel"""
 *     return _func_exprel(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_155exprel(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_exprel(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2287
 * cpdef double exprel(double x0) nogil:
 *     """See the documentation for scipy.special.exprel"""
 *     return _func_exprel(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double fdtr(double x0, double x1, double x2) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_7_exprel_exprel(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2285
 *         return NPY_NAN
 * 
 * cpdef double exprel(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exprel"""
 *     return _func_exprel(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_155exprel(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_154exprel[] = "See the documentation for scipy.special.exprel";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_155exprel(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("exprel (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2285, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.exprel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_154exprel(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_154exprel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("exprel", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_exprel(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.exprel", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2289
 *     return _func_exprel(x0)
 * 
 * cpdef double fdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtr"""
 *     return _func_fdtr(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_157fdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2291
 * cpdef double fdtr(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.fdtr"""
 *     return _func_fdtr(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double fdtrc(double x0, double x1, double x2) nogil:
 */
  __pyx_r = fdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2289
 *     return _func_exprel(x0)
 * 
 * cpdef double fdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtr"""
 *     return _func_fdtr(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_157fdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_156fdtr[] = "See the documentation for scipy.special.fdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_157fdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtr", 1, 3, 3, 1); __PYX_ERR(1, 2289, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtr", 1, 3, 3, 2); __PYX_ERR(1, 2289, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fdtr") < 0)) __PYX_ERR(1, 2289, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2289, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2289, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2289, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2289, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.fdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_156fdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_156fdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_fdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.fdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2293
 *     return _func_fdtr(x0, x1, x2)
 * 
 * cpdef double fdtrc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtrc"""
 *     return _func_fdtrc(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_159fdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtrc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2295
 * cpdef double fdtrc(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.fdtrc"""
 *     return _func_fdtrc(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double fdtri(double x0, double x1, double x2) nogil:
 */
  __pyx_r = fdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2293
 *     return _func_fdtr(x0, x1, x2)
 * 
 * cpdef double fdtrc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtrc"""
 *     return _func_fdtrc(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_159fdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_158fdtrc[] = "See the documentation for scipy.special.fdtrc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_159fdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtrc", 1, 3, 3, 1); __PYX_ERR(1, 2293, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtrc", 1, 3, 3, 2); __PYX_ERR(1, 2293, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fdtrc") < 0)) __PYX_ERR(1, 2293, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2293, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2293, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2293, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fdtrc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2293, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.fdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_158fdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_158fdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_fdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.fdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2297
 *     return _func_fdtrc(x0, x1, x2)
 * 
 * cpdef double fdtri(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtri"""
 *     return _func_fdtri(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_161fdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtri(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2299
 * cpdef double fdtri(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.fdtri"""
 *     return _func_fdtri(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double fdtridfd(double x0, double x1, double x2) nogil:
 */
  __pyx_r = fdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2297
 *     return _func_fdtrc(x0, x1, x2)
 * 
 * cpdef double fdtri(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtri"""
 *     return _func_fdtri(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_161fdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_160fdtri[] = "See the documentation for scipy.special.fdtri";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_161fdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtri", 1, 3, 3, 1); __PYX_ERR(1, 2297, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtri", 1, 3, 3, 2); __PYX_ERR(1, 2297, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fdtri") < 0)) __PYX_ERR(1, 2297, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2297, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2297, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2297, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fdtri", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2297, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.fdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_160fdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_160fdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_fdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.fdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2301
 *     return _func_fdtri(x0, x1, x2)
 * 
 * cpdef double fdtridfd(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtridfd"""
 *     return _func_cdff4_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_163fdtridfd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_fdtridfd(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2303
 * cpdef double fdtridfd(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.fdtridfd"""
 *     return _func_cdff4_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cdef void fresnel(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:
 */
  __pyx_r = cdff4_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2301
 *     return _func_fdtri(x0, x1, x2)
 * 
 * cpdef double fdtridfd(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fdtridfd"""
 *     return _func_cdff4_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_163fdtridfd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_162fdtridfd[] = "See the documentation for scipy.special.fdtridfd";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_163fdtridfd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fdtridfd (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtridfd", 1, 3, 3, 1); __PYX_ERR(1, 2301, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("fdtridfd", 1, 3, 3, 2); __PYX_ERR(1, 2301, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fdtridfd") < 0)) __PYX_ERR(1, 2301, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2301, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2301, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2301, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fdtridfd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2301, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.fdtridfd", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_162fdtridfd(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_162fdtridfd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fdtridfd", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_fdtridfd(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.fdtridfd", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2305
 *     return _func_cdff4_wrap(x0, x1, x2)
 * 
 * cdef void fresnel(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fresnel"""
 *     cdef npy_cdouble tmp0
 */

static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_fresnel(__pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1) {
  npy_cdouble __pyx_v_tmp0;
  npy_cdouble __pyx_v_tmp1;

  /* "scipy/special/cython_special.pyx":2312
 *         _func_fresnl(x0, y0, y1)
 *     elif Dd_number_t is double_complex:
 *         _func_cfresnl_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1)             # <<<<<<<<<<<<<<
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 */
  (void)(cfresnl_wrap(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x0), (&__pyx_v_tmp0), (&__pyx_v_tmp1)));

  /* "scipy/special/cython_special.pyx":2313
 *     elif Dd_number_t is double_complex:
 *         _func_cfresnl_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1)
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)             # <<<<<<<<<<<<<<
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *     else:
 */
  (__pyx_v_y0[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp0);

  /* "scipy/special/cython_special.pyx":2314
 *         _func_cfresnl_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1)
 *         y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *         y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  (__pyx_v_y1[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp1);

  /* "scipy/special/cython_special.pyx":2305
 *     return _func_cdff4_wrap(x0, x1, x2)
 * 
 * cdef void fresnel(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fresnel"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_fresnel(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2310
 *     cdef npy_cdouble tmp1
 *     if Dd_number_t is double:
 *         _func_fresnl(x0, y0, y1)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         _func_cfresnl_wrap(_complexstuff.npy_cdouble_from_double_complex(x0), &tmp0, &tmp1)
 */
  (void)(fresnl(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2305
 *     return _func_cdff4_wrap(x0, x1, x2)
 * 
 * cdef void fresnel(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.fresnel"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2323
 *             y1[0] = NPY_NAN
 * 
 * def _fresnel_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_165_fresnel_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_165_fresnel_pywrap = {"_fresnel_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_165_fresnel_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_165_fresnel_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2323, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2323, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2323, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2323, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2323, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_164_fresnel_pywrap(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_164_fresnel_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_fresnel_pywrap", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2323, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2323, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2323, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2323, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2323, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2323, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2323, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2323, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2323, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2323, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2323, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2323, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2323, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2323, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2323, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2323, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2323, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2323, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2323, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2323, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_753_fresnel_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_753_fresnel_pywrap = {"__pyx_fuse_0_fresnel_pywrap", (PyCFunction)__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_753_fresnel_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_753_fresnel_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_fresnel_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2323, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._fresnel_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_752_fresnel_pywrap(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_752_fresnel_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_fresnel_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2326
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 *     fresnel(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_fresnel(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2327
 *     cdef Dd_number_t y1
 *     fresnel(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t gamma(Dd_number_t x0) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2323
 *             y1[0] = NPY_NAN
 * 
 * def _fresnel_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._fresnel_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_755_fresnel_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_755_fresnel_pywrap = {"__pyx_fuse_1_fresnel_pywrap", (PyCFunction)__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_755_fresnel_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_755_fresnel_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_fresnel_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2323, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._fresnel_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_754_fresnel_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_754_fresnel_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_fresnel_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2326
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 *     fresnel(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_fresnel(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2327
 *     cdef Dd_number_t y1
 *     fresnel(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t gamma(Dd_number_t x0) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2323
 *             y1[0] = NPY_NAN
 * 
 * def _fresnel_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._fresnel_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2329
 *     return y0, y1
 * 
 * cpdef Dd_number_t gamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gamma"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_167gamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_166gamma[] = "See the documentation for scipy.special.gamma";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_167gamma = {"gamma", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_167gamma, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_166gamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_167gamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2329, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2329, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2329, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2329, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2329, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_166gamma(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_166gamma(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gamma", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2329, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2329, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2329, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2329, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2329, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2329, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2329, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2329, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2329, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2329, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2329, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2329, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2329, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2329, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2329, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2329, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2329, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2329, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2329, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2329, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_759__pyx_fuse_0gamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_167gamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_gamma(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2332
 *     """See the documentation for scipy.special.gamma"""
 *     if Dd_number_t is double_complex:
 *         return _func_cgamma(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_Gamma(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_9_loggamma_cgamma(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2329
 *     return y0, y1
 * 
 * cpdef Dd_number_t gamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gamma"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_759__pyx_fuse_0gamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_759__pyx_fuse_0gamma = {"__pyx_fuse_0gamma", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_759__pyx_fuse_0gamma, METH_O, __pyx_doc_5scipy_7special_14cython_special_166gamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_759__pyx_fuse_0gamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0gamma (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2329, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0gamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_758__pyx_fuse_0gamma(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_758__pyx_fuse_0gamma(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0gamma", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_gamma(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0gamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_761__pyx_fuse_1gamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_167gamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_gamma(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2334
 *         return _func_cgamma(x0)
 *     elif Dd_number_t is double:
 *         return _func_Gamma(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = Gamma(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2329
 *     return y0, y1
 * 
 * cpdef Dd_number_t gamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gamma"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_761__pyx_fuse_1gamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_761__pyx_fuse_1gamma = {"__pyx_fuse_1gamma", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_761__pyx_fuse_1gamma, METH_O, __pyx_doc_5scipy_7special_14cython_special_166gamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_761__pyx_fuse_1gamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1gamma (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2329, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1gamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_760__pyx_fuse_1gamma(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_760__pyx_fuse_1gamma(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1gamma", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_gamma(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1gamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2341
 *             return NPY_NAN
 * 
 * cpdef double gammainc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammainc"""
 *     return _func_igam(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_169gammainc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammainc(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2343
 * cpdef double gammainc(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.gammainc"""
 *     return _func_igam(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gammaincc(double x0, double x1) nogil:
 */
  __pyx_r = igam(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2341
 *             return NPY_NAN
 * 
 * cpdef double gammainc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammainc"""
 *     return _func_igam(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_169gammainc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_168gammainc[] = "See the documentation for scipy.special.gammainc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_169gammainc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gammainc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gammainc", 1, 2, 2, 1); __PYX_ERR(1, 2341, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gammainc") < 0)) __PYX_ERR(1, 2341, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2341, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2341, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gammainc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2341, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gammainc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_168gammainc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_168gammainc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gammainc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gammainc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gammainc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2345
 *     return _func_igam(x0, x1)
 * 
 * cpdef double gammaincc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammaincc"""
 *     return _func_igamc(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_171gammaincc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammaincc(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2347
 * cpdef double gammaincc(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.gammaincc"""
 *     return _func_igamc(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gammainccinv(double x0, double x1) nogil:
 */
  __pyx_r = igamc(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2345
 *     return _func_igam(x0, x1)
 * 
 * cpdef double gammaincc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammaincc"""
 *     return _func_igamc(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_171gammaincc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_170gammaincc[] = "See the documentation for scipy.special.gammaincc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_171gammaincc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gammaincc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gammaincc", 1, 2, 2, 1); __PYX_ERR(1, 2345, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gammaincc") < 0)) __PYX_ERR(1, 2345, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2345, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2345, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gammaincc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2345, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gammaincc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_170gammaincc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_170gammaincc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gammaincc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gammaincc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gammaincc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2349
 *     return _func_igamc(x0, x1)
 * 
 * cpdef double gammainccinv(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammainccinv"""
 *     return _func_igamci(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_173gammainccinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammainccinv(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2351
 * cpdef double gammainccinv(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.gammainccinv"""
 *     return _func_igamci(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gammaincinv(double x0, double x1) nogil:
 */
  __pyx_r = igamci(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2349
 *     return _func_igamc(x0, x1)
 * 
 * cpdef double gammainccinv(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammainccinv"""
 *     return _func_igamci(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_173gammainccinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_172gammainccinv[] = "See the documentation for scipy.special.gammainccinv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_173gammainccinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gammainccinv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gammainccinv", 1, 2, 2, 1); __PYX_ERR(1, 2349, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gammainccinv") < 0)) __PYX_ERR(1, 2349, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2349, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2349, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gammainccinv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2349, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gammainccinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_172gammainccinv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_172gammainccinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gammainccinv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gammainccinv(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gammainccinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2353
 *     return _func_igamci(x0, x1)
 * 
 * cpdef double gammaincinv(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammaincinv"""
 *     return _func_igami(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_175gammaincinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammaincinv(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2355
 * cpdef double gammaincinv(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.gammaincinv"""
 *     return _func_igami(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gammaln(double x0) nogil:
 */
  __pyx_r = igami(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2353
 *     return _func_igamci(x0, x1)
 * 
 * cpdef double gammaincinv(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammaincinv"""
 *     return _func_igami(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_175gammaincinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_174gammaincinv[] = "See the documentation for scipy.special.gammaincinv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_175gammaincinv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gammaincinv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gammaincinv", 1, 2, 2, 1); __PYX_ERR(1, 2353, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gammaincinv") < 0)) __PYX_ERR(1, 2353, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2353, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2353, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gammaincinv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2353, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gammaincinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_174gammaincinv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_174gammaincinv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gammaincinv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gammaincinv(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gammaincinv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2357
 *     return _func_igami(x0, x1)
 * 
 * cpdef double gammaln(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammaln"""
 *     return _func_lgam(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_177gammaln(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammaln(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2359
 * cpdef double gammaln(double x0) nogil:
 *     """See the documentation for scipy.special.gammaln"""
 *     return _func_lgam(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gammasgn(double x0) nogil:
 */
  __pyx_r = lgam(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2357
 *     return _func_igami(x0, x1)
 * 
 * cpdef double gammaln(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammaln"""
 *     return _func_lgam(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_177gammaln(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_176gammaln[] = "See the documentation for scipy.special.gammaln";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_177gammaln(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gammaln (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2357, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gammaln", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_176gammaln(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_176gammaln(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gammaln", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gammaln(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gammaln", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2361
 *     return _func_lgam(x0)
 * 
 * cpdef double gammasgn(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammasgn"""
 *     return _func_gammasgn(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_179gammasgn(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gammasgn(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2363
 * cpdef double gammasgn(double x0) nogil:
 *     """See the documentation for scipy.special.gammasgn"""
 *     return _func_gammasgn(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gdtr(double x0, double x1, double x2) nogil:
 */
  __pyx_r = gammasgn(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2361
 *     return _func_lgam(x0)
 * 
 * cpdef double gammasgn(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gammasgn"""
 *     return _func_gammasgn(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_179gammasgn(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_178gammasgn[] = "See the documentation for scipy.special.gammasgn";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_179gammasgn(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gammasgn (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2361, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gammasgn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_178gammasgn(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_178gammasgn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gammasgn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gammasgn(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gammasgn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2365
 *     return _func_gammasgn(x0)
 * 
 * cpdef double gdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtr"""
 *     return _func_gdtr(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_181gdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2367
 * cpdef double gdtr(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.gdtr"""
 *     return _func_gdtr(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gdtrc(double x0, double x1, double x2) nogil:
 */
  __pyx_r = gdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2365
 *     return _func_gammasgn(x0)
 * 
 * cpdef double gdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtr"""
 *     return _func_gdtr(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_181gdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_180gdtr[] = "See the documentation for scipy.special.gdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_181gdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtr", 1, 3, 3, 1); __PYX_ERR(1, 2365, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtr", 1, 3, 3, 2); __PYX_ERR(1, 2365, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gdtr") < 0)) __PYX_ERR(1, 2365, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2365, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2365, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2365, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2365, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_180gdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_180gdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2369
 *     return _func_gdtr(x0, x1, x2)
 * 
 * cpdef double gdtrc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtrc"""
 *     return _func_gdtrc(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_183gdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtrc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2371
 * cpdef double gdtrc(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.gdtrc"""
 *     return _func_gdtrc(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gdtria(double x0, double x1, double x2) nogil:
 */
  __pyx_r = gdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2369
 *     return _func_gdtr(x0, x1, x2)
 * 
 * cpdef double gdtrc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtrc"""
 *     return _func_gdtrc(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_183gdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_182gdtrc[] = "See the documentation for scipy.special.gdtrc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_183gdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtrc", 1, 3, 3, 1); __PYX_ERR(1, 2369, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtrc", 1, 3, 3, 2); __PYX_ERR(1, 2369, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gdtrc") < 0)) __PYX_ERR(1, 2369, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2369, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2369, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2369, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gdtrc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2369, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_182gdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_182gdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2373
 *     return _func_gdtrc(x0, x1, x2)
 * 
 * cpdef double gdtria(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtria"""
 *     return _func_cdfgam4_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_185gdtria(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtria(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2375
 * cpdef double gdtria(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.gdtria"""
 *     return _func_cdfgam4_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gdtrib(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfgam4_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2373
 *     return _func_gdtrc(x0, x1, x2)
 * 
 * cpdef double gdtria(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtria"""
 *     return _func_cdfgam4_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_185gdtria(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_184gdtria[] = "See the documentation for scipy.special.gdtria";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_185gdtria(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdtria (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtria", 1, 3, 3, 1); __PYX_ERR(1, 2373, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtria", 1, 3, 3, 2); __PYX_ERR(1, 2373, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gdtria") < 0)) __PYX_ERR(1, 2373, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2373, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2373, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2373, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gdtria", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2373, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gdtria", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_184gdtria(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_184gdtria(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gdtria", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gdtria(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gdtria", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2377
 *     return _func_cdfgam4_wrap(x0, x1, x2)
 * 
 * cpdef double gdtrib(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtrib"""
 *     return _func_cdfgam3_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_187gdtrib(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtrib(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2379
 * cpdef double gdtrib(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.gdtrib"""
 *     return _func_cdfgam3_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double gdtrix(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfgam3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2377
 *     return _func_cdfgam4_wrap(x0, x1, x2)
 * 
 * cpdef double gdtrib(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtrib"""
 *     return _func_cdfgam3_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_187gdtrib(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_186gdtrib[] = "See the documentation for scipy.special.gdtrib";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_187gdtrib(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdtrib (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtrib", 1, 3, 3, 1); __PYX_ERR(1, 2377, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtrib", 1, 3, 3, 2); __PYX_ERR(1, 2377, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gdtrib") < 0)) __PYX_ERR(1, 2377, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2377, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2377, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2377, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gdtrib", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2377, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gdtrib", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_186gdtrib(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_186gdtrib(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gdtrib", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gdtrib(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gdtrib", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2381
 *     return _func_cdfgam3_wrap(x0, x1, x2)
 * 
 * cpdef double gdtrix(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtrix"""
 *     return _func_cdfgam2_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_189gdtrix(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_gdtrix(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2383
 * cpdef double gdtrix(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.gdtrix"""
 *     return _func_cdfgam2_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double complex hankel1(double x0, double complex x1) nogil:
 */
  __pyx_r = cdfgam2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2381
 *     return _func_cdfgam3_wrap(x0, x1, x2)
 * 
 * cpdef double gdtrix(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gdtrix"""
 *     return _func_cdfgam2_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_189gdtrix(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_188gdtrix[] = "See the documentation for scipy.special.gdtrix";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_189gdtrix(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("gdtrix (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtrix", 1, 3, 3, 1); __PYX_ERR(1, 2381, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("gdtrix", 1, 3, 3, 2); __PYX_ERR(1, 2381, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gdtrix") < 0)) __PYX_ERR(1, 2381, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2381, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2381, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2381, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("gdtrix", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2381, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.gdtrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_188gdtrix(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_188gdtrix(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("gdtrix", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_gdtrix(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.gdtrix", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2385
 *     return _func_cdfgam2_wrap(x0, x1, x2)
 * 
 * cpdef double complex hankel1(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel1"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_191hankel1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel1(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2387
 * cpdef double complex hankel1(double x0, double complex x1) nogil:
 *     """See the documentation for scipy.special.hankel1"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 * 
 * cpdef double complex hankel1e(double x0, double complex x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesh_wrap1(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2385
 *     return _func_cdfgam2_wrap(x0, x1, x2)
 * 
 * cpdef double complex hankel1(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel1"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_191hankel1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_190hankel1[] = "See the documentation for scipy.special.hankel1";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_191hankel1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hankel1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("hankel1", 1, 2, 2, 1); __PYX_ERR(1, 2385, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hankel1") < 0)) __PYX_ERR(1, 2385, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2385, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2385, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("hankel1", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2385, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.hankel1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_190hankel1(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_190hankel1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hankel1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_5scipy_7special_14cython_special_hankel1(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.hankel1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2389
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double complex hankel1e(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel1e"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_193hankel1e(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel1e(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2391
 * cpdef double complex hankel1e(double x0, double complex x1) nogil:
 *     """See the documentation for scipy.special.hankel1e"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 * 
 * cpdef double complex hankel2(double x0, double complex x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesh_wrap1_e(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2389
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double complex hankel1e(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel1e"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_193hankel1e(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_192hankel1e[] = "See the documentation for scipy.special.hankel1e";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_193hankel1e(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hankel1e (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("hankel1e", 1, 2, 2, 1); __PYX_ERR(1, 2389, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hankel1e") < 0)) __PYX_ERR(1, 2389, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2389, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2389, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("hankel1e", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2389, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.hankel1e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_192hankel1e(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_192hankel1e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hankel1e", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_5scipy_7special_14cython_special_hankel1e(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.hankel1e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2393
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double complex hankel2(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel2"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_195hankel2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel2(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2395
 * cpdef double complex hankel2(double x0, double complex x1) nogil:
 *     """See the documentation for scipy.special.hankel2"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 * 
 * cpdef double complex hankel2e(double x0, double complex x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesh_wrap2(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2393
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap1_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double complex hankel2(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel2"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_195hankel2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_194hankel2[] = "See the documentation for scipy.special.hankel2";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_195hankel2(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hankel2 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("hankel2", 1, 2, 2, 1); __PYX_ERR(1, 2393, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hankel2") < 0)) __PYX_ERR(1, 2393, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2393, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2393, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("hankel2", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2393, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.hankel2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_194hankel2(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_194hankel2(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hankel2", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_5scipy_7special_14cython_special_hankel2(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.hankel2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2397
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double complex hankel2e(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel2e"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_197hankel2e(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_hankel2e(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2399
 * cpdef double complex hankel2e(double x0, double complex x1) nogil:
 *     """See the documentation for scipy.special.hankel2e"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 * 
 * cpdef double huber(double x0, double x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesh_wrap2_e(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2397
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double complex hankel2e(double x0, double complex x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hankel2e"""
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_197hankel2e(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_196hankel2e[] = "See the documentation for scipy.special.hankel2e";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_197hankel2e(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hankel2e (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("hankel2e", 1, 2, 2, 1); __PYX_ERR(1, 2397, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hankel2e") < 0)) __PYX_ERR(1, 2397, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2397, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2397, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("hankel2e", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2397, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.hankel2e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_196hankel2e(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_196hankel2e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hankel2e", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_5scipy_7special_14cython_special_hankel2e(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.hankel2e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2401
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double huber(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.huber"""
 *     return _func_huber(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_199huber(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_huber(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2403
 * cpdef double huber(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.huber"""
 *     return _func_huber(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t hyp0f1(double x0, Dd_number_t x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_16_convex_analysis_huber(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2401
 *     return _complexstuff.double_complex_from_npy_cdouble(_func_cbesh_wrap2_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 * 
 * cpdef double huber(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.huber"""
 *     return _func_huber(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_199huber(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_198huber[] = "See the documentation for scipy.special.huber";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_199huber(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("huber (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("huber", 1, 2, 2, 1); __PYX_ERR(1, 2401, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "huber") < 0)) __PYX_ERR(1, 2401, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2401, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2401, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("huber", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2401, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.huber", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_198huber(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_198huber(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("huber", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_huber(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.huber", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2405
 *     return _func_huber(x0, x1)
 * 
 * cpdef Dd_number_t hyp0f1(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp0f1"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_201hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_200hyp0f1[] = "See the documentation for scipy.special.hyp0f1";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_201hyp0f1 = {"hyp0f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_201hyp0f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_200hyp0f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_201hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2405, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2405, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2405, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2405, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2405, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_200hyp0f1(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_200hyp0f1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hyp0f1", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2405, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2405, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2405, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2405, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2405, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2405, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2405, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2405, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2405, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2405, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2405, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2405, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2405, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2405, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2405, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2405, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2405, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2405, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2405, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2405, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_765__pyx_fuse_0hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_201hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp0f1(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2408
 *     """See the documentation for scipy.special.hyp0f1"""
 *     if Dd_number_t is double_complex:
 *         return _func__hyp0f1_cmplx(x0, x1)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func__hyp0f1_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_cmplx(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2405
 *     return _func_huber(x0, x1)
 * 
 * cpdef Dd_number_t hyp0f1(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp0f1"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_765__pyx_fuse_0hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_765__pyx_fuse_0hyp0f1 = {"__pyx_fuse_0hyp0f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_765__pyx_fuse_0hyp0f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_200hyp0f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_765__pyx_fuse_0hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0hyp0f1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp0f1", 1, 2, 2, 1); __PYX_ERR(1, 2405, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0hyp0f1") < 0)) __PYX_ERR(1, 2405, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2405, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2405, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp0f1", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2405, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0hyp0f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_764__pyx_fuse_0hyp0f1(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_764__pyx_fuse_0hyp0f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0hyp0f1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp0f1(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0hyp0f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_767__pyx_fuse_1hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_201hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp0f1(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2410
 *         return _func__hyp0f1_cmplx(x0, x1)
 *     elif Dd_number_t is double:
 *         return _func__hyp0f1_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2405
 *     return _func_huber(x0, x1)
 * 
 * cpdef Dd_number_t hyp0f1(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp0f1"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_767__pyx_fuse_1hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_767__pyx_fuse_1hyp0f1 = {"__pyx_fuse_1hyp0f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_767__pyx_fuse_1hyp0f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_200hyp0f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_767__pyx_fuse_1hyp0f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1hyp0f1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp0f1", 1, 2, 2, 1); __PYX_ERR(1, 2405, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1hyp0f1") < 0)) __PYX_ERR(1, 2405, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2405, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2405, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp0f1", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2405, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1hyp0f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_766__pyx_fuse_1hyp0f1(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_766__pyx_fuse_1hyp0f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1hyp0f1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp0f1(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1hyp0f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2417
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp1f1(double x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp1f1"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_203hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_202hyp1f1[] = "See the documentation for scipy.special.hyp1f1";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_203hyp1f1 = {"hyp1f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_203hyp1f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_202hyp1f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_203hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2417, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2417, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2417, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2417, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2417, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_202hyp1f1(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_202hyp1f1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hyp1f1", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2417, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2417, __pyx_L1_error)
  __pyx_t_2 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2417, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2417, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x2, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2417, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2417, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2417, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2417, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2417, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2417, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2417, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2417, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2417, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2417, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2417, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2417, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2417, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2417, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2417, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2417, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_771__pyx_fuse_0hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_203hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp1f1(double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2422
 *         return _func_hyp1f1(x0, x1, x2)
 *     elif Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_chyp1f1_wrap(x0, x1, _complexstuff.npy_cdouble_from_double_complex(x2)))             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(chyp1f1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x2)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2417
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp1f1(double x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp1f1"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_771__pyx_fuse_0hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_771__pyx_fuse_0hyp1f1 = {"__pyx_fuse_0hyp1f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_771__pyx_fuse_0hyp1f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_202hyp1f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_771__pyx_fuse_0hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  __pyx_t_double_complex __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0hyp1f1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp1f1", 1, 3, 3, 1); __PYX_ERR(1, 2417, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp1f1", 1, 3, 3, 2); __PYX_ERR(1, 2417, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0hyp1f1") < 0)) __PYX_ERR(1, 2417, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2417, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2417, __pyx_L3_error)
    __pyx_v_x2 = __Pyx_PyComplex_As___pyx_t_double_complex(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2417, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp1f1", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2417, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0hyp1f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_770__pyx_fuse_0hyp1f1(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_770__pyx_fuse_0hyp1f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, __pyx_t_double_complex __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0hyp1f1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp1f1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0hyp1f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_773__pyx_fuse_1hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_203hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp1f1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2420
 *     """See the documentation for scipy.special.hyp1f1"""
 *     if Dd_number_t is double:
 *         return _func_hyp1f1(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_chyp1f1_wrap(x0, x1, _complexstuff.npy_cdouble_from_double_complex(x2)))
 */
  __pyx_r = __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2417
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp1f1(double x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp1f1"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_773__pyx_fuse_1hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_773__pyx_fuse_1hyp1f1 = {"__pyx_fuse_1hyp1f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_773__pyx_fuse_1hyp1f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_202hyp1f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_773__pyx_fuse_1hyp1f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1hyp1f1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp1f1", 1, 3, 3, 1); __PYX_ERR(1, 2417, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp1f1", 1, 3, 3, 2); __PYX_ERR(1, 2417, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1hyp1f1") < 0)) __PYX_ERR(1, 2417, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2417, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2417, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2417, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp1f1", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2417, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1hyp1f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_772__pyx_fuse_1hyp1f1(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_772__pyx_fuse_1hyp1f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1hyp1f1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp1f1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1hyp1f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2429
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp2f1(double x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp2f1"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_205hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_204hyp2f1[] = "See the documentation for scipy.special.hyp2f1";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_205hyp2f1 = {"hyp2f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_205hyp2f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_204hyp2f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_205hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2429, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2429, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_204hyp2f1(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_204hyp2f1(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hyp2f1", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2429, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2429, __pyx_L1_error)
  __pyx_t_2 = ((3 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2429, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2429, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x3, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2429, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2429, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2429, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2429, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2429, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2429, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2429, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2429, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2429, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2429, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2429, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2429, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2429, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2429, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2429, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2429, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2429, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_777__pyx_fuse_0hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_205hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp2f1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2434
 *         return _func_hyp2f1(x0, x1, x2, x3)
 *     elif Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_chyp2f1_wrap(x0, x1, x2, _complexstuff.npy_cdouble_from_double_complex(x3)))             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(chyp2f1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x3)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2429
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp2f1(double x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp2f1"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_777__pyx_fuse_0hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_777__pyx_fuse_0hyp2f1 = {"__pyx_fuse_0hyp2f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_777__pyx_fuse_0hyp2f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_204hyp2f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_777__pyx_fuse_0hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  __pyx_t_double_complex __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0hyp2f1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp2f1", 1, 4, 4, 1); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp2f1", 1, 4, 4, 2); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp2f1", 1, 4, 4, 3); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0hyp2f1") < 0)) __PYX_ERR(1, 2429, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
    __pyx_v_x3 = __Pyx_PyComplex_As___pyx_t_double_complex(values[3]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0hyp2f1", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2429, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0hyp2f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_776__pyx_fuse_0hyp2f1(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_776__pyx_fuse_0hyp2f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, __pyx_t_double_complex __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0hyp2f1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp2f1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0hyp2f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_779__pyx_fuse_1hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_205hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp2f1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2432
 *     """See the documentation for scipy.special.hyp2f1"""
 *     if Dd_number_t is double:
 *         return _func_hyp2f1(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_chyp2f1_wrap(x0, x1, x2, _complexstuff.npy_cdouble_from_double_complex(x3)))
 */
  __pyx_r = hyp2f1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2429
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp2f1(double x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp2f1"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_779__pyx_fuse_1hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_779__pyx_fuse_1hyp2f1 = {"__pyx_fuse_1hyp2f1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_779__pyx_fuse_1hyp2f1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_204hyp2f1};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_779__pyx_fuse_1hyp2f1(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1hyp2f1 (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp2f1", 1, 4, 4, 1); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp2f1", 1, 4, 4, 2); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp2f1", 1, 4, 4, 3); __PYX_ERR(1, 2429, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1hyp2f1") < 0)) __PYX_ERR(1, 2429, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2429, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1hyp2f1", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2429, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1hyp2f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_778__pyx_fuse_1hyp2f1(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_778__pyx_fuse_1hyp2f1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1hyp2f1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp2f1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1hyp2f1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2441
 *             return NPY_NAN
 * 
 * cpdef double hyperu(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyperu"""
 *     return _func_hyperu(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_207hyperu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_hyperu(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2443
 * cpdef double hyperu(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.hyperu"""
 *     return _func_hyperu(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double i0(double x0) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_15_hypergeometric_hyperu(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2441
 *             return NPY_NAN
 * 
 * cpdef double hyperu(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyperu"""
 *     return _func_hyperu(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_207hyperu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_206hyperu[] = "See the documentation for scipy.special.hyperu";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_207hyperu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hyperu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("hyperu", 1, 3, 3, 1); __PYX_ERR(1, 2441, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("hyperu", 1, 3, 3, 2); __PYX_ERR(1, 2441, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hyperu") < 0)) __PYX_ERR(1, 2441, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2441, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2441, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2441, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("hyperu", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2441, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.hyperu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_206hyperu(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_206hyperu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("hyperu", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_hyperu(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.hyperu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2445
 *     return _func_hyperu(x0, x1, x2)
 * 
 * cpdef double i0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i0"""
 *     return _func_i0(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_209i0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i0(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2447
 * cpdef double i0(double x0) nogil:
 *     """See the documentation for scipy.special.i0"""
 *     return _func_i0(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double i0e(double x0) nogil:
 */
  __pyx_r = i0(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2445
 *     return _func_hyperu(x0, x1, x2)
 * 
 * cpdef double i0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i0"""
 *     return _func_i0(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_209i0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_208i0[] = "See the documentation for scipy.special.i0";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_209i0(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("i0 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2445, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.i0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_208i0(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_208i0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("i0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_i0(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2445, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.i0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2449
 *     return _func_i0(x0)
 * 
 * cpdef double i0e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i0e"""
 *     return _func_i0e(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_211i0e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i0e(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2451
 * cpdef double i0e(double x0) nogil:
 *     """See the documentation for scipy.special.i0e"""
 *     return _func_i0e(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double i1(double x0) nogil:
 */
  __pyx_r = i0e(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2449
 *     return _func_i0(x0)
 * 
 * cpdef double i0e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i0e"""
 *     return _func_i0e(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_211i0e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_210i0e[] = "See the documentation for scipy.special.i0e";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_211i0e(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("i0e (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2449, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.i0e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_210i0e(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_210i0e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("i0e", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_i0e(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.i0e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2453
 *     return _func_i0e(x0)
 * 
 * cpdef double i1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i1"""
 *     return _func_i1(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_213i1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2455
 * cpdef double i1(double x0) nogil:
 *     """See the documentation for scipy.special.i1"""
 *     return _func_i1(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double i1e(double x0) nogil:
 */
  __pyx_r = i1(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2453
 *     return _func_i0e(x0)
 * 
 * cpdef double i1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i1"""
 *     return _func_i1(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_213i1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_212i1[] = "See the documentation for scipy.special.i1";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_213i1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("i1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2453, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.i1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_212i1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_212i1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("i1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_i1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.i1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2457
 *     return _func_i1(x0)
 * 
 * cpdef double i1e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i1e"""
 *     return _func_i1e(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_215i1e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_i1e(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2459
 * cpdef double i1e(double x0) nogil:
 *     """See the documentation for scipy.special.i1e"""
 *     return _func_i1e(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double inv_boxcox(double x0, double x1) nogil:
 */
  __pyx_r = i1e(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2457
 *     return _func_i1(x0)
 * 
 * cpdef double i1e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.i1e"""
 *     return _func_i1e(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_215i1e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_214i1e[] = "See the documentation for scipy.special.i1e";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_215i1e(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("i1e (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2457, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.i1e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_214i1e(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_214i1e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("i1e", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_i1e(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.i1e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2461
 *     return _func_i1e(x0)
 * 
 * cpdef double inv_boxcox(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.inv_boxcox"""
 *     return _func_inv_boxcox(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_217inv_boxcox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_inv_boxcox(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2463
 * cpdef double inv_boxcox(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.inv_boxcox"""
 *     return _func_inv_boxcox(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double inv_boxcox1p(double x0, double x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_7_boxcox_inv_boxcox(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2461
 *     return _func_i1e(x0)
 * 
 * cpdef double inv_boxcox(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.inv_boxcox"""
 *     return _func_inv_boxcox(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_217inv_boxcox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_216inv_boxcox[] = "See the documentation for scipy.special.inv_boxcox";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_217inv_boxcox(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inv_boxcox (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inv_boxcox", 1, 2, 2, 1); __PYX_ERR(1, 2461, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inv_boxcox") < 0)) __PYX_ERR(1, 2461, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2461, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2461, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inv_boxcox", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2461, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.inv_boxcox", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_216inv_boxcox(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_216inv_boxcox(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("inv_boxcox", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_inv_boxcox(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.inv_boxcox", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2465
 *     return _func_inv_boxcox(x0, x1)
 * 
 * cpdef double inv_boxcox1p(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.inv_boxcox1p"""
 *     return _func_inv_boxcox1p(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_219inv_boxcox1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_inv_boxcox1p(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2467
 * cpdef double inv_boxcox1p(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.inv_boxcox1p"""
 *     return _func_inv_boxcox1p(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cdef void it2i0k0(double x0, double *y0, double *y1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_7_boxcox_inv_boxcox1p(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2465
 *     return _func_inv_boxcox(x0, x1)
 * 
 * cpdef double inv_boxcox1p(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.inv_boxcox1p"""
 *     return _func_inv_boxcox1p(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_219inv_boxcox1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_218inv_boxcox1p[] = "See the documentation for scipy.special.inv_boxcox1p";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_219inv_boxcox1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inv_boxcox1p (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inv_boxcox1p", 1, 2, 2, 1); __PYX_ERR(1, 2465, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inv_boxcox1p") < 0)) __PYX_ERR(1, 2465, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2465, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2465, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inv_boxcox1p", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2465, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.inv_boxcox1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_218inv_boxcox1p(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_218inv_boxcox1p(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("inv_boxcox1p", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_inv_boxcox1p(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.inv_boxcox1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2469
 *     return _func_inv_boxcox1p(x0, x1)
 * 
 * cdef void it2i0k0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.it2i0k0"""
 *     _func_it2i0k0_wrap(x0, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_it2i0k0(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2471
 * cdef void it2i0k0(double x0, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.it2i0k0"""
 *     _func_it2i0k0_wrap(x0, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _it2i0k0_pywrap(double x0):
 */
  (void)(it2i0k0_wrap(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2469
 *     return _func_inv_boxcox1p(x0, x1)
 * 
 * cdef void it2i0k0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.it2i0k0"""
 *     _func_it2i0k0_wrap(x0, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2473
 *     _func_it2i0k0_wrap(x0, y0, y1)
 * 
 * def _it2i0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_221_it2i0k0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_221_it2i0k0_pywrap = {"_it2i0k0_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_221_it2i0k0_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_221_it2i0k0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_it2i0k0_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2473, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._it2i0k0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_220_it2i0k0_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_220_it2i0k0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_it2i0k0_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2476
 *     cdef double y0
 *     cdef double y1
 *     it2i0k0(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_it2i0k0(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2477
 *     cdef double y1
 *     it2i0k0(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void it2j0y0(double x0, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2477, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2473
 *     _func_it2i0k0_wrap(x0, y0, y1)
 * 
 * def _it2i0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._it2i0k0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2479
 *     return y0, y1
 * 
 * cdef void it2j0y0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.it2j0y0"""
 *     _func_it2j0y0_wrap(x0, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_it2j0y0(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2481
 * cdef void it2j0y0(double x0, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.it2j0y0"""
 *     _func_it2j0y0_wrap(x0, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _it2j0y0_pywrap(double x0):
 */
  (void)(it2j0y0_wrap(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2479
 *     return y0, y1
 * 
 * cdef void it2j0y0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.it2j0y0"""
 *     _func_it2j0y0_wrap(x0, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2483
 *     _func_it2j0y0_wrap(x0, y0, y1)
 * 
 * def _it2j0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_223_it2j0y0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_223_it2j0y0_pywrap = {"_it2j0y0_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_223_it2j0y0_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_223_it2j0y0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_it2j0y0_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2483, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._it2j0y0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_222_it2j0y0_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_222_it2j0y0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_it2j0y0_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2486
 *     cdef double y0
 *     cdef double y1
 *     it2j0y0(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_it2j0y0(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2487
 *     cdef double y1
 *     it2j0y0(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double it2struve0(double x0) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2483
 *     _func_it2j0y0_wrap(x0, y0, y1)
 * 
 * def _it2j0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._it2j0y0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2489
 *     return y0, y1
 * 
 * cpdef double it2struve0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.it2struve0"""
 *     return _func_it2struve0_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_225it2struve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_it2struve0(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2491
 * cpdef double it2struve0(double x0) nogil:
 *     """See the documentation for scipy.special.it2struve0"""
 *     return _func_it2struve0_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cdef void itairy(double x0, double *y0, double *y1, double *y2, double *y3) nogil:
 */
  __pyx_r = it2struve0_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2489
 *     return y0, y1
 * 
 * cpdef double it2struve0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.it2struve0"""
 *     return _func_it2struve0_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_225it2struve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_224it2struve0[] = "See the documentation for scipy.special.it2struve0";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_225it2struve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("it2struve0 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2489, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.it2struve0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_224it2struve0(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_224it2struve0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("it2struve0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_it2struve0(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.it2struve0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2493
 *     return _func_it2struve0_wrap(x0)
 * 
 * cdef void itairy(double x0, double *y0, double *y1, double *y2, double *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itairy"""
 *     _func_itairy_wrap(x0, y0, y1, y2, y3)
 */

static void __pyx_f_5scipy_7special_14cython_special_itairy(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1, double *__pyx_v_y2, double *__pyx_v_y3) {

  /* "scipy/special/cython_special.pyx":2495
 * cdef void itairy(double x0, double *y0, double *y1, double *y2, double *y3) nogil:
 *     """See the documentation for scipy.special.itairy"""
 *     _func_itairy_wrap(x0, y0, y1, y2, y3)             # <<<<<<<<<<<<<<
 * 
 * def _itairy_pywrap(double x0):
 */
  (void)(itairy_wrap(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1, __pyx_v_y2, __pyx_v_y3));

  /* "scipy/special/cython_special.pyx":2493
 *     return _func_it2struve0_wrap(x0)
 * 
 * cdef void itairy(double x0, double *y0, double *y1, double *y2, double *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itairy"""
 *     _func_itairy_wrap(x0, y0, y1, y2, y3)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2497
 *     _func_itairy_wrap(x0, y0, y1, y2, y3)
 * 
 * def _itairy_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_227_itairy_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_227_itairy_pywrap = {"_itairy_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_227_itairy_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_227_itairy_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_itairy_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2497, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._itairy_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_226_itairy_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_226_itairy_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  double __pyx_v_y2;
  double __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_itairy_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2502
 *     cdef double y2
 *     cdef double y3
 *     itairy(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 *     return y0, y1, y2, y3
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_itairy(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));

  /* "scipy/special/cython_special.pyx":2503
 *     cdef double y3
 *     itairy(x0, &y0, &y1, &y2, &y3)
 *     return y0, y1, y2, y3             # <<<<<<<<<<<<<<
 * 
 * cdef void iti0k0(double x0, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_y2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_y3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2497
 *     _func_itairy_wrap(x0, y0, y1, y2, y3)
 * 
 * def _itairy_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("scipy.special.cython_special._itairy_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2505
 *     return y0, y1, y2, y3
 * 
 * cdef void iti0k0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.iti0k0"""
 *     _func_it1i0k0_wrap(x0, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_iti0k0(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2507
 * cdef void iti0k0(double x0, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.iti0k0"""
 *     _func_it1i0k0_wrap(x0, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _iti0k0_pywrap(double x0):
 */
  (void)(it1i0k0_wrap(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2505
 *     return y0, y1, y2, y3
 * 
 * cdef void iti0k0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.iti0k0"""
 *     _func_it1i0k0_wrap(x0, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2509
 *     _func_it1i0k0_wrap(x0, y0, y1)
 * 
 * def _iti0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_229_iti0k0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_229_iti0k0_pywrap = {"_iti0k0_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_229_iti0k0_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_229_iti0k0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_iti0k0_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2509, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._iti0k0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_228_iti0k0_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_228_iti0k0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_iti0k0_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2512
 *     cdef double y0
 *     cdef double y1
 *     iti0k0(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_iti0k0(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2513
 *     cdef double y1
 *     iti0k0(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void itj0y0(double x0, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2509
 *     _func_it1i0k0_wrap(x0, y0, y1)
 * 
 * def _iti0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._iti0k0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2515
 *     return y0, y1
 * 
 * cdef void itj0y0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itj0y0"""
 *     _func_it1j0y0_wrap(x0, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_itj0y0(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2517
 * cdef void itj0y0(double x0, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.itj0y0"""
 *     _func_it1j0y0_wrap(x0, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _itj0y0_pywrap(double x0):
 */
  (void)(it1j0y0_wrap(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2515
 *     return y0, y1
 * 
 * cdef void itj0y0(double x0, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itj0y0"""
 *     _func_it1j0y0_wrap(x0, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2519
 *     _func_it1j0y0_wrap(x0, y0, y1)
 * 
 * def _itj0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_231_itj0y0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_231_itj0y0_pywrap = {"_itj0y0_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_231_itj0y0_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_231_itj0y0_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_itj0y0_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2519, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._itj0y0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_230_itj0y0_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_230_itj0y0_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_itj0y0_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2522
 *     cdef double y0
 *     cdef double y1
 *     itj0y0(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_itj0y0(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2523
 *     cdef double y1
 *     itj0y0(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double itmodstruve0(double x0) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2519
 *     _func_it1j0y0_wrap(x0, y0, y1)
 * 
 * def _itj0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._itj0y0_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2525
 *     return y0, y1
 * 
 * cpdef double itmodstruve0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itmodstruve0"""
 *     return _func_itmodstruve0_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_233itmodstruve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_itmodstruve0(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2527
 * cpdef double itmodstruve0(double x0) nogil:
 *     """See the documentation for scipy.special.itmodstruve0"""
 *     return _func_itmodstruve0_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double itstruve0(double x0) nogil:
 */
  __pyx_r = itmodstruve0_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2525
 *     return y0, y1
 * 
 * cpdef double itmodstruve0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itmodstruve0"""
 *     return _func_itmodstruve0_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_233itmodstruve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_232itmodstruve0[] = "See the documentation for scipy.special.itmodstruve0";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_233itmodstruve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("itmodstruve0 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2525, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.itmodstruve0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_232itmodstruve0(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_232itmodstruve0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("itmodstruve0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_itmodstruve0(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.itmodstruve0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2529
 *     return _func_itmodstruve0_wrap(x0)
 * 
 * cpdef double itstruve0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itstruve0"""
 *     return _func_itstruve0_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_235itstruve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_itstruve0(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2531
 * cpdef double itstruve0(double x0) nogil:
 *     """See the documentation for scipy.special.itstruve0"""
 *     return _func_itstruve0_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t iv(double x0, Dd_number_t x1) nogil:
 */
  __pyx_r = itstruve0_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2529
 *     return _func_itmodstruve0_wrap(x0)
 * 
 * cpdef double itstruve0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.itstruve0"""
 *     return _func_itstruve0_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_235itstruve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_234itstruve0[] = "See the documentation for scipy.special.itstruve0";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_235itstruve0(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("itstruve0 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2529, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.itstruve0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_234itstruve0(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_234itstruve0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("itstruve0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_itstruve0(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.itstruve0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2533
 *     return _func_itstruve0_wrap(x0)
 * 
 * cpdef Dd_number_t iv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.iv"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_237iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_236iv[] = "See the documentation for scipy.special.iv";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_237iv = {"iv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_237iv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_236iv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_237iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2533, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2533, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2533, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2533, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2533, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_236iv(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_236iv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("iv", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2533, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2533, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2533, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2533, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2533, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2533, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2533, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2533, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2533, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2533, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2533, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2533, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2533, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2533, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2533, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2533, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2533, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2533, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2533, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2533, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_783__pyx_fuse_0iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_237iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_iv(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2536
 *     """See the documentation for scipy.special.iv"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesi_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_iv(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesi_wrap(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2533
 *     return _func_itstruve0_wrap(x0)
 * 
 * cpdef Dd_number_t iv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.iv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_783__pyx_fuse_0iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_783__pyx_fuse_0iv = {"__pyx_fuse_0iv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_783__pyx_fuse_0iv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_236iv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_783__pyx_fuse_0iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0iv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0iv", 1, 2, 2, 1); __PYX_ERR(1, 2533, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0iv") < 0)) __PYX_ERR(1, 2533, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2533, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2533, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0iv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2533, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0iv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_782__pyx_fuse_0iv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_782__pyx_fuse_0iv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0iv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_iv(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0iv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_785__pyx_fuse_1iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_237iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_iv(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2538
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesi_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_iv(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = iv(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2533
 *     return _func_itstruve0_wrap(x0)
 * 
 * cpdef Dd_number_t iv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.iv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_785__pyx_fuse_1iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_785__pyx_fuse_1iv = {"__pyx_fuse_1iv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_785__pyx_fuse_1iv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_236iv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_785__pyx_fuse_1iv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1iv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1iv", 1, 2, 2, 1); __PYX_ERR(1, 2533, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1iv") < 0)) __PYX_ERR(1, 2533, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2533, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2533, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1iv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2533, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1iv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_784__pyx_fuse_1iv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_784__pyx_fuse_1iv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1iv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_iv(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1iv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2545
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t ive(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ive"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_239ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_238ive[] = "See the documentation for scipy.special.ive";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_239ive = {"ive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_239ive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_238ive};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_239ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2545, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2545, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2545, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2545, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2545, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_238ive(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_238ive(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ive", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2545, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2545, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2545, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2545, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2545, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2545, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2545, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2545, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2545, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2545, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2545, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2545, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2545, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2545, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2545, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2545, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2545, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2545, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2545, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2545, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_789__pyx_fuse_0ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_239ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ive(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2548
 *     """See the documentation for scipy.special.ive"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesi_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_cbesi_wrap_e_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesi_wrap_e(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2545
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t ive(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ive"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_789__pyx_fuse_0ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_789__pyx_fuse_0ive = {"__pyx_fuse_0ive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_789__pyx_fuse_0ive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_238ive};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_789__pyx_fuse_0ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0ive (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0ive", 1, 2, 2, 1); __PYX_ERR(1, 2545, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0ive") < 0)) __PYX_ERR(1, 2545, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2545, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2545, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0ive", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2545, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0ive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_788__pyx_fuse_0ive(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_788__pyx_fuse_0ive(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0ive", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ive(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0ive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_791__pyx_fuse_1ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_239ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ive(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2550
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesi_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_cbesi_wrap_e_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = cbesi_wrap_e_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2545
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t ive(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ive"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_791__pyx_fuse_1ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_791__pyx_fuse_1ive = {"__pyx_fuse_1ive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_791__pyx_fuse_1ive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_238ive};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_791__pyx_fuse_1ive(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1ive (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1ive", 1, 2, 2, 1); __PYX_ERR(1, 2545, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1ive") < 0)) __PYX_ERR(1, 2545, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2545, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2545, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1ive", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2545, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1ive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_790__pyx_fuse_1ive(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_790__pyx_fuse_1ive(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1ive", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ive(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1ive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2557
 *             return NPY_NAN
 * 
 * cpdef double j0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.j0"""
 *     return _func_j0(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_241j0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_j0(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2559
 * cpdef double j0(double x0) nogil:
 *     """See the documentation for scipy.special.j0"""
 *     return _func_j0(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double j1(double x0) nogil:
 */
  __pyx_r = j0(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2557
 *             return NPY_NAN
 * 
 * cpdef double j0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.j0"""
 *     return _func_j0(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_241j0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_240j0[] = "See the documentation for scipy.special.j0";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_241j0(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("j0 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2557, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.j0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_240j0(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_240j0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("j0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_j0(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.j0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2561
 *     return _func_j0(x0)
 * 
 * cpdef double j1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.j1"""
 *     return _func_j1(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_243j1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_j1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2563
 * cpdef double j1(double x0) nogil:
 *     """See the documentation for scipy.special.j1"""
 *     return _func_j1(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t jv(double x0, Dd_number_t x1) nogil:
 */
  __pyx_r = j1(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2561
 *     return _func_j0(x0)
 * 
 * cpdef double j1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.j1"""
 *     return _func_j1(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_243j1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_242j1[] = "See the documentation for scipy.special.j1";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_243j1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("j1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2561, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.j1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_242j1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_242j1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("j1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_j1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.j1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2565
 *     return _func_j1(x0)
 * 
 * cpdef Dd_number_t jv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jv"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_245jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_244jv[] = "See the documentation for scipy.special.jv";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_245jv = {"jv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_245jv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_244jv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_245jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2565, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2565, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2565, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2565, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2565, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_244jv(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_244jv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("jv", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2565, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2565, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2565, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2565, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2565, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2565, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2565, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2565, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2565, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2565, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2565, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2565, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2565, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2565, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2565, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2565, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2565, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2565, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2565, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2565, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_795__pyx_fuse_0jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_245jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jv(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2568
 *     """See the documentation for scipy.special.jv"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesj_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_cbesj_wrap_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesj_wrap(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2565
 *     return _func_j1(x0)
 * 
 * cpdef Dd_number_t jv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_795__pyx_fuse_0jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_795__pyx_fuse_0jv = {"__pyx_fuse_0jv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_795__pyx_fuse_0jv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_244jv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_795__pyx_fuse_0jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0jv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0jv", 1, 2, 2, 1); __PYX_ERR(1, 2565, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0jv") < 0)) __PYX_ERR(1, 2565, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2565, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2565, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0jv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2565, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0jv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_794__pyx_fuse_0jv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_794__pyx_fuse_0jv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0jv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jv(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0jv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_797__pyx_fuse_1jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_245jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jv(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2570
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesj_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_cbesj_wrap_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = cbesj_wrap_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2565
 *     return _func_j1(x0)
 * 
 * cpdef Dd_number_t jv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_797__pyx_fuse_1jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_797__pyx_fuse_1jv = {"__pyx_fuse_1jv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_797__pyx_fuse_1jv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_244jv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_797__pyx_fuse_1jv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1jv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1jv", 1, 2, 2, 1); __PYX_ERR(1, 2565, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1jv") < 0)) __PYX_ERR(1, 2565, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2565, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2565, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1jv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2565, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1jv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_796__pyx_fuse_1jv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_796__pyx_fuse_1jv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1jv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jv(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1jv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2577
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t jve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jve"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_247jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_246jve[] = "See the documentation for scipy.special.jve";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_247jve = {"jve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_247jve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_246jve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_247jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2577, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2577, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2577, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2577, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_246jve(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_246jve(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("jve", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2577, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2577, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2577, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2577, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2577, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2577, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2577, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2577, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2577, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2577, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2577, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2577, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2577, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2577, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2577, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2577, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2577, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2577, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2577, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2577, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_801__pyx_fuse_0jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_247jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jve(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2580
 *     """See the documentation for scipy.special.jve"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesj_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_cbesj_wrap_e_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesj_wrap_e(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2577
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t jve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jve"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_801__pyx_fuse_0jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_801__pyx_fuse_0jve = {"__pyx_fuse_0jve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_801__pyx_fuse_0jve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_246jve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_801__pyx_fuse_0jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0jve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0jve", 1, 2, 2, 1); __PYX_ERR(1, 2577, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0jve") < 0)) __PYX_ERR(1, 2577, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2577, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2577, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0jve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0jve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_800__pyx_fuse_0jve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_800__pyx_fuse_0jve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0jve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jve(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0jve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_803__pyx_fuse_1jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_247jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jve(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2582
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesj_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_cbesj_wrap_e_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = cbesj_wrap_e_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2577
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t jve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jve"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_803__pyx_fuse_1jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_803__pyx_fuse_1jve = {"__pyx_fuse_1jve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_803__pyx_fuse_1jve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_246jve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_803__pyx_fuse_1jve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1jve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1jve", 1, 2, 2, 1); __PYX_ERR(1, 2577, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1jve") < 0)) __PYX_ERR(1, 2577, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2577, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2577, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1jve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2577, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1jve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_802__pyx_fuse_1jve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_802__pyx_fuse_1jve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1jve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jve(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1jve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2589
 *             return NPY_NAN
 * 
 * cpdef double k0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k0"""
 *     return _func_k0(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_249k0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k0(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2591
 * cpdef double k0(double x0) nogil:
 *     """See the documentation for scipy.special.k0"""
 *     return _func_k0(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double k0e(double x0) nogil:
 */
  __pyx_r = k0(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2589
 *             return NPY_NAN
 * 
 * cpdef double k0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k0"""
 *     return _func_k0(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_249k0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_248k0[] = "See the documentation for scipy.special.k0";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_249k0(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k0 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2589, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.k0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_248k0(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_248k0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_k0(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.k0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2593
 *     return _func_k0(x0)
 * 
 * cpdef double k0e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k0e"""
 *     return _func_k0e(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_251k0e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k0e(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2595
 * cpdef double k0e(double x0) nogil:
 *     """See the documentation for scipy.special.k0e"""
 *     return _func_k0e(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double k1(double x0) nogil:
 */
  __pyx_r = k0e(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2593
 *     return _func_k0(x0)
 * 
 * cpdef double k0e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k0e"""
 *     return _func_k0e(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_251k0e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_250k0e[] = "See the documentation for scipy.special.k0e";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_251k0e(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k0e (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2593, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.k0e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_250k0e(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_250k0e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k0e", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_k0e(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.k0e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2597
 *     return _func_k0e(x0)
 * 
 * cpdef double k1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k1"""
 *     return _func_k1(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_253k1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2599
 * cpdef double k1(double x0) nogil:
 *     """See the documentation for scipy.special.k1"""
 *     return _func_k1(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double k1e(double x0) nogil:
 */
  __pyx_r = k1(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2597
 *     return _func_k0e(x0)
 * 
 * cpdef double k1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k1"""
 *     return _func_k1(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_253k1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_252k1[] = "See the documentation for scipy.special.k1";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_253k1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2597, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.k1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_252k1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_252k1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_k1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.k1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2601
 *     return _func_k1(x0)
 * 
 * cpdef double k1e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k1e"""
 *     return _func_k1e(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_255k1e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_k1e(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2603
 * cpdef double k1e(double x0) nogil:
 *     """See the documentation for scipy.special.k1e"""
 *     return _func_k1e(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double kei(double x0) nogil:
 */
  __pyx_r = k1e(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2601
 *     return _func_k1(x0)
 * 
 * cpdef double k1e(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.k1e"""
 *     return _func_k1e(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_255k1e(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_254k1e[] = "See the documentation for scipy.special.k1e";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_255k1e(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k1e (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2601, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.k1e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_254k1e(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_254k1e(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k1e", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_k1e(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.k1e", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2605
 *     return _func_k1e(x0)
 * 
 * cpdef double kei(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kei"""
 *     return _func_kei_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_257kei(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kei(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2607
 * cpdef double kei(double x0) nogil:
 *     """See the documentation for scipy.special.kei"""
 *     return _func_kei_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double keip(double x0) nogil:
 */
  __pyx_r = kei_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2605
 *     return _func_k1e(x0)
 * 
 * cpdef double kei(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kei"""
 *     return _func_kei_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_257kei(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_256kei[] = "See the documentation for scipy.special.kei";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_257kei(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("kei (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2605, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.kei", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_256kei(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_256kei(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kei", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_kei(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.kei", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2609
 *     return _func_kei_wrap(x0)
 * 
 * cpdef double keip(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.keip"""
 *     return _func_keip_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_259keip(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_keip(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2611
 * cpdef double keip(double x0) nogil:
 *     """See the documentation for scipy.special.keip"""
 *     return _func_keip_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cdef void kelvin(double x0, double complex *y0, double complex *y1, double complex *y2, double complex *y3) nogil:
 */
  __pyx_r = keip_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2609
 *     return _func_kei_wrap(x0)
 * 
 * cpdef double keip(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.keip"""
 *     return _func_keip_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_259keip(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_258keip[] = "See the documentation for scipy.special.keip";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_259keip(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("keip (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2609, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.keip", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_258keip(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_258keip(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("keip", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_keip(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.keip", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2613
 *     return _func_keip_wrap(x0)
 * 
 * cdef void kelvin(double x0, double complex *y0, double complex *y1, double complex *y2, double complex *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kelvin"""
 *     cdef npy_cdouble tmp0
 */

static void __pyx_f_5scipy_7special_14cython_special_kelvin(double __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1, __pyx_t_double_complex *__pyx_v_y2, __pyx_t_double_complex *__pyx_v_y3) {
  npy_cdouble __pyx_v_tmp0;
  npy_cdouble __pyx_v_tmp1;
  npy_cdouble __pyx_v_tmp2;
  npy_cdouble __pyx_v_tmp3;

  /* "scipy/special/cython_special.pyx":2619
 *     cdef npy_cdouble tmp2
 *     cdef npy_cdouble tmp3
 *     _func_kelvin_wrap(x0, &tmp0, &tmp1, &tmp2, &tmp3)             # <<<<<<<<<<<<<<
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 */
  (void)(kelvin_wrap(__pyx_v_x0, (&__pyx_v_tmp0), (&__pyx_v_tmp1), (&__pyx_v_tmp2), (&__pyx_v_tmp3)));

  /* "scipy/special/cython_special.pyx":2620
 *     cdef npy_cdouble tmp3
 *     _func_kelvin_wrap(x0, &tmp0, &tmp1, &tmp2, &tmp3)
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)             # <<<<<<<<<<<<<<
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *     y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 */
  (__pyx_v_y0[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp0);

  /* "scipy/special/cython_special.pyx":2621
 *     _func_kelvin_wrap(x0, &tmp0, &tmp1, &tmp2, &tmp3)
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)             # <<<<<<<<<<<<<<
 *     y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 *     y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 */
  (__pyx_v_y1[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp1);

  /* "scipy/special/cython_special.pyx":2622
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *     y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)             # <<<<<<<<<<<<<<
 *     y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 * 
 */
  (__pyx_v_y2[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp2);

  /* "scipy/special/cython_special.pyx":2623
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 *     y2[0] = _complexstuff.double_complex_from_npy_cdouble(tmp2)
 *     y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)             # <<<<<<<<<<<<<<
 * 
 * def _kelvin_pywrap(double x0):
 */
  (__pyx_v_y3[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp3);

  /* "scipy/special/cython_special.pyx":2613
 *     return _func_keip_wrap(x0)
 * 
 * cdef void kelvin(double x0, double complex *y0, double complex *y1, double complex *y2, double complex *y3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kelvin"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2625
 *     y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 * 
 * def _kelvin_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_261_kelvin_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_261_kelvin_pywrap = {"_kelvin_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_261_kelvin_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_261_kelvin_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_kelvin_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2625, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._kelvin_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_260_kelvin_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_260_kelvin_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  __pyx_t_double_complex __pyx_v_y2;
  __pyx_t_double_complex __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_kelvin_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2630
 *     cdef double complex y2
 *     cdef double complex y3
 *     kelvin(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 *     return y0, y1, y2, y3
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_kelvin(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));

  /* "scipy/special/cython_special.pyx":2631
 *     cdef double complex y3
 *     kelvin(x0, &y0, &y1, &y2, &y3)
 *     return y0, y1, y2, y3             # <<<<<<<<<<<<<<
 * 
 * cpdef double ker(double x0) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_PyComplex_FromComplex(__pyx_v_y2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_PyComplex_FromComplex(__pyx_v_y3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 2631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2625
 *     y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 * 
 * def _kelvin_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("scipy.special.cython_special._kelvin_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2633
 *     return y0, y1, y2, y3
 * 
 * cpdef double ker(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ker"""
 *     return _func_ker_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_263ker(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ker(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2635
 * cpdef double ker(double x0) nogil:
 *     """See the documentation for scipy.special.ker"""
 *     return _func_ker_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double kerp(double x0) nogil:
 */
  __pyx_r = ker_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2633
 *     return y0, y1, y2, y3
 * 
 * cpdef double ker(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ker"""
 *     return _func_ker_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_263ker(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_262ker[] = "See the documentation for scipy.special.ker";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_263ker(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ker (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2633, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ker", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_262ker(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_262ker(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ker", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ker(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ker", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2637
 *     return _func_ker_wrap(x0)
 * 
 * cpdef double kerp(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kerp"""
 *     return _func_kerp_wrap(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_265kerp(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kerp(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2639
 * cpdef double kerp(double x0) nogil:
 *     """See the documentation for scipy.special.kerp"""
 *     return _func_kerp_wrap(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double kl_div(double x0, double x1) nogil:
 */
  __pyx_r = kerp_wrap(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2637
 *     return _func_ker_wrap(x0)
 * 
 * cpdef double kerp(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kerp"""
 *     return _func_kerp_wrap(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_265kerp(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_264kerp[] = "See the documentation for scipy.special.kerp";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_265kerp(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("kerp (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2637, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.kerp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_264kerp(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_264kerp(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kerp", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_kerp(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.kerp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2641
 *     return _func_kerp_wrap(x0)
 * 
 * cpdef double kl_div(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kl_div"""
 *     return _func_kl_div(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_267kl_div(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kl_div(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2643
 * cpdef double kl_div(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.kl_div"""
 *     return _func_kl_div(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double kn(dl_number_t x0, double x1) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_16_convex_analysis_kl_div(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2641
 *     return _func_kerp_wrap(x0)
 * 
 * cpdef double kl_div(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kl_div"""
 *     return _func_kl_div(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_267kl_div(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_266kl_div[] = "See the documentation for scipy.special.kl_div";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_267kl_div(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("kl_div (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("kl_div", 1, 2, 2, 1); __PYX_ERR(1, 2641, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "kl_div") < 0)) __PYX_ERR(1, 2641, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2641, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2641, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("kl_div", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2641, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.kl_div", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_266kl_div(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_266kl_div(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kl_div", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_kl_div(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.kl_div", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2645
 *     return _func_kl_div(x0, x1)
 * 
 * cpdef double kn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kn"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_269kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_268kn[] = "See the documentation for scipy.special.kn";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_269kn = {"kn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_269kn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_268kn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_269kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2645, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2645, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2645, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2645, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2645, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_268kn(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_268kn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kn", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2645, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2645, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2645, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2645, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2645, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2645, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2645, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2645, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2645, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2645, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2645, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2645, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2645, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2645, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2645, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2645, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2645, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2645, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2645, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2645, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_807__pyx_fuse_0kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_269kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kn(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2648
 *     """See the documentation for scipy.special.kn"""
 *     if dl_number_t is double:
 *         return _func_kn_unsafe(x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_cbesk_wrap_real_int(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_kn_unsafe(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2645
 *     return _func_kl_div(x0, x1)
 * 
 * cpdef double kn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kn"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_807__pyx_fuse_0kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_807__pyx_fuse_0kn = {"__pyx_fuse_0kn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_807__pyx_fuse_0kn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_268kn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_807__pyx_fuse_0kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0kn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0kn", 1, 2, 2, 1); __PYX_ERR(1, 2645, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0kn") < 0)) __PYX_ERR(1, 2645, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2645, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2645, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0kn", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2645, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_806__pyx_fuse_0kn(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_806__pyx_fuse_0kn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0kn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kn(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_809__pyx_fuse_1kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_269kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kn(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2650
 *         return _func_kn_unsafe(x0, x1)
 *     elif dl_number_t is long:
 *         return _func_cbesk_wrap_real_int(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = cbesk_wrap_real_int(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2645
 *     return _func_kl_div(x0, x1)
 * 
 * cpdef double kn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kn"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_809__pyx_fuse_1kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_809__pyx_fuse_1kn = {"__pyx_fuse_1kn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_809__pyx_fuse_1kn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_268kn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_809__pyx_fuse_1kn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1kn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1kn", 1, 2, 2, 1); __PYX_ERR(1, 2645, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1kn") < 0)) __PYX_ERR(1, 2645, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2645, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2645, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1kn", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2645, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_808__pyx_fuse_1kn(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_808__pyx_fuse_1kn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1kn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kn(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1kn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2654
 *         return NPY_NAN
 * 
 * cpdef double kolmogi(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kolmogi"""
 *     return _func_kolmogi(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_271kolmogi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kolmogi(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2656
 * cpdef double kolmogi(double x0) nogil:
 *     """See the documentation for scipy.special.kolmogi"""
 *     return _func_kolmogi(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double kolmogorov(double x0) nogil:
 */
  __pyx_r = kolmogi(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2654
 *         return NPY_NAN
 * 
 * cpdef double kolmogi(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kolmogi"""
 *     return _func_kolmogi(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_271kolmogi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_270kolmogi[] = "See the documentation for scipy.special.kolmogi";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_271kolmogi(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("kolmogi (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2654, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.kolmogi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_270kolmogi(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_270kolmogi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kolmogi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_kolmogi(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.kolmogi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2658
 *     return _func_kolmogi(x0)
 * 
 * cpdef double kolmogorov(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kolmogorov"""
 *     return _func_kolmogorov(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_273kolmogorov(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_kolmogorov(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2660
 * cpdef double kolmogorov(double x0) nogil:
 *     """See the documentation for scipy.special.kolmogorov"""
 *     return _func_kolmogorov(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t kv(double x0, Dd_number_t x1) nogil:
 */
  __pyx_r = kolmogorov(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2658
 *     return _func_kolmogi(x0)
 * 
 * cpdef double kolmogorov(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kolmogorov"""
 *     return _func_kolmogorov(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_273kolmogorov(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_272kolmogorov[] = "See the documentation for scipy.special.kolmogorov";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_273kolmogorov(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("kolmogorov (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2658, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.kolmogorov", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_272kolmogorov(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_272kolmogorov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kolmogorov", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_kolmogorov(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.kolmogorov", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2662
 *     return _func_kolmogorov(x0)
 * 
 * cpdef Dd_number_t kv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kv"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_275kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_274kv[] = "See the documentation for scipy.special.kv";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_275kv = {"kv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_275kv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_274kv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_275kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2662, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2662, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2662, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2662, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2662, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_274kv(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_274kv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kv", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2662, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2662, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2662, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2662, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2662, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2662, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2662, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2662, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2662, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2662, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2662, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2662, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2662, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2662, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2662, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2662, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2662, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2662, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2662, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2662, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_813__pyx_fuse_0kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_275kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kv(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2665
 *     """See the documentation for scipy.special.kv"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesk_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_cbesk_wrap_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesk_wrap(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2662
 *     return _func_kolmogorov(x0)
 * 
 * cpdef Dd_number_t kv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_813__pyx_fuse_0kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_813__pyx_fuse_0kv = {"__pyx_fuse_0kv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_813__pyx_fuse_0kv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_274kv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_813__pyx_fuse_0kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0kv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0kv", 1, 2, 2, 1); __PYX_ERR(1, 2662, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0kv") < 0)) __PYX_ERR(1, 2662, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2662, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2662, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0kv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2662, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0kv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_812__pyx_fuse_0kv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_812__pyx_fuse_0kv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0kv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kv(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0kv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_815__pyx_fuse_1kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_275kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kv(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2667
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesk_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_cbesk_wrap_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = cbesk_wrap_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2662
 *     return _func_kolmogorov(x0)
 * 
 * cpdef Dd_number_t kv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_815__pyx_fuse_1kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_815__pyx_fuse_1kv = {"__pyx_fuse_1kv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_815__pyx_fuse_1kv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_274kv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_815__pyx_fuse_1kv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1kv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1kv", 1, 2, 2, 1); __PYX_ERR(1, 2662, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1kv") < 0)) __PYX_ERR(1, 2662, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2662, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2662, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1kv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2662, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1kv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_814__pyx_fuse_1kv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_814__pyx_fuse_1kv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1kv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kv(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1kv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2674
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t kve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kve"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_277kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_276kve[] = "See the documentation for scipy.special.kve";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_277kve = {"kve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_277kve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_276kve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_277kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2674, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2674, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2674, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2674, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2674, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_276kve(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_276kve(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("kve", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2674, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2674, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2674, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2674, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2674, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2674, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2674, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2674, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2674, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2674, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2674, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2674, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2674, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2674, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2674, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2674, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2674, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2674, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2674, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2674, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_819__pyx_fuse_0kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_277kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kve(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2677
 *     """See the documentation for scipy.special.kve"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesk_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_cbesk_wrap_e_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesk_wrap_e(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2674
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t kve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kve"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_819__pyx_fuse_0kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_819__pyx_fuse_0kve = {"__pyx_fuse_0kve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_819__pyx_fuse_0kve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_276kve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_819__pyx_fuse_0kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0kve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0kve", 1, 2, 2, 1); __PYX_ERR(1, 2674, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0kve") < 0)) __PYX_ERR(1, 2674, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2674, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2674, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0kve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2674, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0kve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_818__pyx_fuse_0kve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_818__pyx_fuse_0kve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0kve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kve(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0kve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_821__pyx_fuse_1kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_277kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kve(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2679
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesk_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_cbesk_wrap_e_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = cbesk_wrap_e_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2674
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t kve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kve"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_821__pyx_fuse_1kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_821__pyx_fuse_1kve = {"__pyx_fuse_1kve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_821__pyx_fuse_1kve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_276kve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_821__pyx_fuse_1kve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1kve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1kve", 1, 2, 2, 1); __PYX_ERR(1, 2674, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1kve") < 0)) __PYX_ERR(1, 2674, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2674, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2674, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1kve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2674, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1kve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_820__pyx_fuse_1kve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_820__pyx_fuse_1kve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1kve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kve(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1kve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2686
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log1p(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log1p"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_279log1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_278log1p[] = "See the documentation for scipy.special.log1p";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_279log1p = {"log1p", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_279log1p, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_278log1p};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_279log1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2686, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2686, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2686, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2686, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2686, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_278log1p(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_278log1p(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("log1p", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2686, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2686, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2686, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2686, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2686, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2686, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2686, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2686, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2686, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2686, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2686, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2686, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2686, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2686, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2686, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2686, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2686, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2686, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2686, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2686, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_825__pyx_fuse_0log1p(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_279log1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log1p(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2689
 *     """See the documentation for scipy.special.log1p"""
 *     if Dd_number_t is double_complex:
 *         return _func_clog1p(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_log1p(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_cunity_clog1p(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2686
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log1p(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log1p"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_825__pyx_fuse_0log1p(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_825__pyx_fuse_0log1p = {"__pyx_fuse_0log1p", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_825__pyx_fuse_0log1p, METH_O, __pyx_doc_5scipy_7special_14cython_special_278log1p};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_825__pyx_fuse_0log1p(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0log1p (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2686, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0log1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_824__pyx_fuse_0log1p(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_824__pyx_fuse_0log1p(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0log1p", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log1p(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0log1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_827__pyx_fuse_1log1p(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_279log1p(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log1p(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2691
 *         return _func_clog1p(x0)
 *     elif Dd_number_t is double:
 *         return _func_log1p(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = log1p(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2686
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log1p(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log1p"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_827__pyx_fuse_1log1p(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_827__pyx_fuse_1log1p = {"__pyx_fuse_1log1p", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_827__pyx_fuse_1log1p, METH_O, __pyx_doc_5scipy_7special_14cython_special_278log1p};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_827__pyx_fuse_1log1p(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1log1p (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2686, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1log1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_826__pyx_fuse_1log1p(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_826__pyx_fuse_1log1p(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1log1p", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log1p(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1log1p", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2698
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log_ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log_ndtr"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_281log_ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_280log_ndtr[] = "See the documentation for scipy.special.log_ndtr";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_281log_ndtr = {"log_ndtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_281log_ndtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_280log_ndtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_281log_ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2698, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2698, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2698, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2698, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2698, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_280log_ndtr(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_280log_ndtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("log_ndtr", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2698, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2698, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2698, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2698, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2698, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2698, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2698, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2698, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2698, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2698, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2698, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2698, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2698, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2698, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2698, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2698, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2698, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2698, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2698, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2698, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_831__pyx_fuse_0log_ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_281log_ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log_ndtr(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2701
 *     """See the documentation for scipy.special.log_ndtr"""
 *     if Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_log_ndtr)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_log_ndtr(x0)
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_log_ndtr)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2698
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log_ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log_ndtr"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_831__pyx_fuse_0log_ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_831__pyx_fuse_0log_ndtr = {"__pyx_fuse_0log_ndtr", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_831__pyx_fuse_0log_ndtr, METH_O, __pyx_doc_5scipy_7special_14cython_special_280log_ndtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_831__pyx_fuse_0log_ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0log_ndtr (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2698, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0log_ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_830__pyx_fuse_0log_ndtr(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_830__pyx_fuse_0log_ndtr(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0log_ndtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log_ndtr(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0log_ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_833__pyx_fuse_1log_ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_281log_ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log_ndtr(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2703
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_log_ndtr)(x0)
 *     elif Dd_number_t is double:
 *         return _func_log_ndtr(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = log_ndtr(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2698
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log_ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log_ndtr"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_833__pyx_fuse_1log_ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_833__pyx_fuse_1log_ndtr = {"__pyx_fuse_1log_ndtr", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_833__pyx_fuse_1log_ndtr, METH_O, __pyx_doc_5scipy_7special_14cython_special_280log_ndtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_833__pyx_fuse_1log_ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1log_ndtr (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2698, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1log_ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_832__pyx_fuse_1log_ndtr(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_832__pyx_fuse_1log_ndtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1log_ndtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log_ndtr(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1log_ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2710
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t loggamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.loggamma"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_283loggamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_282loggamma[] = "See the documentation for scipy.special.loggamma";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_283loggamma = {"loggamma", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_283loggamma, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_282loggamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_283loggamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2710, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2710, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2710, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2710, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2710, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_282loggamma(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_282loggamma(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("loggamma", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2710, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2710, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2710, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2710, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2710, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2710, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2710, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2710, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2710, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2710, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2710, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2710, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2710, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2710, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2710, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2710, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2710, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2710, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2710, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2710, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_837__pyx_fuse_0loggamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_283loggamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_loggamma(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2715
 *         return _func_loggamma_real(x0)
 *     elif Dd_number_t is double_complex:
 *         return _func_loggamma(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_9_loggamma_loggamma(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2710
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t loggamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.loggamma"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_837__pyx_fuse_0loggamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_837__pyx_fuse_0loggamma = {"__pyx_fuse_0loggamma", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_837__pyx_fuse_0loggamma, METH_O, __pyx_doc_5scipy_7special_14cython_special_282loggamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_837__pyx_fuse_0loggamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0loggamma (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2710, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0loggamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_836__pyx_fuse_0loggamma(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_836__pyx_fuse_0loggamma(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0loggamma", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_loggamma(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0loggamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_839__pyx_fuse_1loggamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_283loggamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_loggamma(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2713
 *     """See the documentation for scipy.special.loggamma"""
 *     if Dd_number_t is double:
 *         return _func_loggamma_real(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return _func_loggamma(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_9_loggamma_loggamma_real(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2710
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t loggamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.loggamma"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_839__pyx_fuse_1loggamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_839__pyx_fuse_1loggamma = {"__pyx_fuse_1loggamma", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_839__pyx_fuse_1loggamma, METH_O, __pyx_doc_5scipy_7special_14cython_special_282loggamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_839__pyx_fuse_1loggamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1loggamma (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2710, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1loggamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_838__pyx_fuse_1loggamma(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_838__pyx_fuse_1loggamma(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1loggamma", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_loggamma(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1loggamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2722
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t logit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.logit"""
 *     if dfg_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_285logit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_284logit[] = "See the documentation for scipy.special.logit";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_285logit = {"logit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_285logit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_284logit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_285logit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2722, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2722, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2722, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2722, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2722, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_284logit(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_284logit(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("logit", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2722, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2722, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2722, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2722, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2722, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2722, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2722, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2722, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_long_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2722, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2722, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2722, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2722, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2722, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 2722, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L17;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L15_break;
        }
        __pyx_L17:;
      }
    }
    __pyx_L15_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2722, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2722, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2722, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2722, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2722, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_843__pyx_fuse_0logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_285logit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_logit(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2725
 *     """See the documentation for scipy.special.logit"""
 *     if dfg_number_t is double:
 *         return _func_logit(x0)             # <<<<<<<<<<<<<<
 *     elif dfg_number_t is float:
 *         return _func_logitf(x0)
 */
  __pyx_r = logit(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2722
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t logit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.logit"""
 *     if dfg_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_843__pyx_fuse_0logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_843__pyx_fuse_0logit = {"__pyx_fuse_0logit", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_843__pyx_fuse_0logit, METH_O, __pyx_doc_5scipy_7special_14cython_special_284logit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_843__pyx_fuse_0logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0logit (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2722, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0logit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_842__pyx_fuse_0logit(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_842__pyx_fuse_0logit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0logit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_logit(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0logit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_845__pyx_fuse_1logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_285logit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static float __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_logit(float __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  float __pyx_r;

  /* "scipy/special/cython_special.pyx":2727
 *         return _func_logit(x0)
 *     elif dfg_number_t is float:
 *         return _func_logitf(x0)             # <<<<<<<<<<<<<<
 *     elif dfg_number_t is long_double:
 *         return _func_logitl(x0)
 */
  __pyx_r = logitf(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2722
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t logit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.logit"""
 *     if dfg_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_845__pyx_fuse_1logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_845__pyx_fuse_1logit = {"__pyx_fuse_1logit", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_845__pyx_fuse_1logit, METH_O, __pyx_doc_5scipy_7special_14cython_special_284logit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_845__pyx_fuse_1logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  float __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1logit (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsFloat(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (float)-1) && PyErr_Occurred())) __PYX_ERR(1, 2722, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1logit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_844__pyx_fuse_1logit(__pyx_self, ((float)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_844__pyx_fuse_1logit(CYTHON_UNUSED PyObject *__pyx_self, float __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1logit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_logit(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1logit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_847__pyx_fuse_2logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_285logit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static long double __pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_logit(long double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  long double __pyx_r;

  /* "scipy/special/cython_special.pyx":2729
 *         return _func_logitf(x0)
 *     elif dfg_number_t is long_double:
 *         return _func_logitl(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if dfg_number_t is double:
 */
  __pyx_r = logitl(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2722
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t logit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.logit"""
 *     if dfg_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_847__pyx_fuse_2logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_5scipy_7special_14cython_special_847__pyx_fuse_2logit = {"__pyx_fuse_2logit", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_847__pyx_fuse_2logit, METH_O, __pyx_doc_5scipy_7special_14cython_special_284logit};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_847__pyx_fuse_2logit(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  long double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2logit (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (long double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2722, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_2logit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_846__pyx_fuse_2logit(__pyx_self, ((long double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_846__pyx_fuse_2logit(CYTHON_UNUSED PyObject *__pyx_self, long double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_2logit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_logit(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_2logit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2738
 *             return NPY_NAN
 * 
 * cpdef double lpmv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.lpmv"""
 *     return _func_pmv_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_287lpmv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_lpmv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2740
 * cpdef double lpmv(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.lpmv"""
 *     return _func_pmv_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double mathieu_a(double x0, double x1) nogil:
 */
  __pyx_r = pmv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2738
 *             return NPY_NAN
 * 
 * cpdef double lpmv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.lpmv"""
 *     return _func_pmv_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_287lpmv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_286lpmv[] = "See the documentation for scipy.special.lpmv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_287lpmv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("lpmv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lpmv", 1, 3, 3, 1); __PYX_ERR(1, 2738, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("lpmv", 1, 3, 3, 2); __PYX_ERR(1, 2738, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lpmv") < 0)) __PYX_ERR(1, 2738, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2738, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2738, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2738, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("lpmv", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2738, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.lpmv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_286lpmv(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_286lpmv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("lpmv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_lpmv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.lpmv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2742
 *     return _func_pmv_wrap(x0, x1, x2)
 * 
 * cpdef double mathieu_a(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_a"""
 *     return _func_cem_cva_wrap(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_289mathieu_a(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_mathieu_a(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2744
 * cpdef double mathieu_a(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.mathieu_a"""
 *     return _func_cem_cva_wrap(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double mathieu_b(double x0, double x1) nogil:
 */
  __pyx_r = cem_cva_wrap(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2742
 *     return _func_pmv_wrap(x0, x1, x2)
 * 
 * cpdef double mathieu_a(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_a"""
 *     return _func_cem_cva_wrap(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_289mathieu_a(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_288mathieu_a[] = "See the documentation for scipy.special.mathieu_a";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_289mathieu_a(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mathieu_a (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("mathieu_a", 1, 2, 2, 1); __PYX_ERR(1, 2742, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mathieu_a") < 0)) __PYX_ERR(1, 2742, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2742, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2742, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("mathieu_a", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2742, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.mathieu_a", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_288mathieu_a(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_288mathieu_a(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mathieu_a", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_mathieu_a(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.mathieu_a", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2746
 *     return _func_cem_cva_wrap(x0, x1)
 * 
 * cpdef double mathieu_b(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_b"""
 *     return _func_sem_cva_wrap(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_291mathieu_b(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_mathieu_b(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2748
 * cpdef double mathieu_b(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.mathieu_b"""
 *     return _func_sem_cva_wrap(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cdef void mathieu_cem(double x0, double x1, double x2, double *y0, double *y1) nogil:
 */
  __pyx_r = sem_cva_wrap(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2746
 *     return _func_cem_cva_wrap(x0, x1)
 * 
 * cpdef double mathieu_b(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_b"""
 *     return _func_sem_cva_wrap(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_291mathieu_b(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_290mathieu_b[] = "See the documentation for scipy.special.mathieu_b";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_291mathieu_b(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mathieu_b (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("mathieu_b", 1, 2, 2, 1); __PYX_ERR(1, 2746, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mathieu_b") < 0)) __PYX_ERR(1, 2746, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2746, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2746, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("mathieu_b", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.mathieu_b", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_290mathieu_b(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_290mathieu_b(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mathieu_b", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_mathieu_b(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.mathieu_b", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2750
 *     return _func_sem_cva_wrap(x0, x1)
 * 
 * cdef void mathieu_cem(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_cem"""
 *     _func_cem_wrap(x0, x1, x2, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_mathieu_cem(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2752
 * cdef void mathieu_cem(double x0, double x1, double x2, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.mathieu_cem"""
 *     _func_cem_wrap(x0, x1, x2, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _mathieu_cem_pywrap(double x0, double x1, double x2):
 */
  (void)(cem_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2750
 *     return _func_sem_cva_wrap(x0, x1)
 * 
 * cdef void mathieu_cem(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_cem"""
 *     _func_cem_wrap(x0, x1, x2, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2754
 *     _func_cem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_cem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_293_mathieu_cem_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_293_mathieu_cem_pywrap = {"_mathieu_cem_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_293_mathieu_cem_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_293_mathieu_cem_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mathieu_cem_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_cem_pywrap", 1, 3, 3, 1); __PYX_ERR(1, 2754, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_cem_pywrap", 1, 3, 3, 2); __PYX_ERR(1, 2754, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_mathieu_cem_pywrap") < 0)) __PYX_ERR(1, 2754, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2754, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2754, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2754, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mathieu_cem_pywrap", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2754, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_cem_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_292_mathieu_cem_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_292_mathieu_cem_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mathieu_cem_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2757
 *     cdef double y0
 *     cdef double y1
 *     mathieu_cem(x0, x1, x2, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_mathieu_cem(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2758
 *     cdef double y1
 *     mathieu_cem(x0, x1, x2, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void mathieu_modcem1(double x0, double x1, double x2, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2754
 *     _func_cem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_cem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_cem_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2760
 *     return y0, y1
 * 
 * cdef void mathieu_modcem1(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modcem1"""
 *     _func_mcm1_wrap(x0, x1, x2, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_mathieu_modcem1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2762
 * cdef void mathieu_modcem1(double x0, double x1, double x2, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.mathieu_modcem1"""
 *     _func_mcm1_wrap(x0, x1, x2, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _mathieu_modcem1_pywrap(double x0, double x1, double x2):
 */
  (void)(mcm1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2760
 *     return y0, y1
 * 
 * cdef void mathieu_modcem1(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modcem1"""
 *     _func_mcm1_wrap(x0, x1, x2, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2764
 *     _func_mcm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_295_mathieu_modcem1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_295_mathieu_modcem1_pywrap = {"_mathieu_modcem1_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_295_mathieu_modcem1_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_295_mathieu_modcem1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mathieu_modcem1_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modcem1_pywrap", 1, 3, 3, 1); __PYX_ERR(1, 2764, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modcem1_pywrap", 1, 3, 3, 2); __PYX_ERR(1, 2764, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_mathieu_modcem1_pywrap") < 0)) __PYX_ERR(1, 2764, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2764, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2764, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2764, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mathieu_modcem1_pywrap", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2764, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modcem1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_294_mathieu_modcem1_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_294_mathieu_modcem1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mathieu_modcem1_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2767
 *     cdef double y0
 *     cdef double y1
 *     mathieu_modcem1(x0, x1, x2, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_mathieu_modcem1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2768
 *     cdef double y1
 *     mathieu_modcem1(x0, x1, x2, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void mathieu_modcem2(double x0, double x1, double x2, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2768, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2764
 *     _func_mcm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modcem1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2770
 *     return y0, y1
 * 
 * cdef void mathieu_modcem2(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modcem2"""
 *     _func_mcm2_wrap(x0, x1, x2, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_mathieu_modcem2(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2772
 * cdef void mathieu_modcem2(double x0, double x1, double x2, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.mathieu_modcem2"""
 *     _func_mcm2_wrap(x0, x1, x2, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _mathieu_modcem2_pywrap(double x0, double x1, double x2):
 */
  (void)(mcm2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2770
 *     return y0, y1
 * 
 * cdef void mathieu_modcem2(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modcem2"""
 *     _func_mcm2_wrap(x0, x1, x2, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2774
 *     _func_mcm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_297_mathieu_modcem2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_297_mathieu_modcem2_pywrap = {"_mathieu_modcem2_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_297_mathieu_modcem2_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_297_mathieu_modcem2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mathieu_modcem2_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modcem2_pywrap", 1, 3, 3, 1); __PYX_ERR(1, 2774, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modcem2_pywrap", 1, 3, 3, 2); __PYX_ERR(1, 2774, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_mathieu_modcem2_pywrap") < 0)) __PYX_ERR(1, 2774, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2774, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2774, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2774, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mathieu_modcem2_pywrap", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2774, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modcem2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_296_mathieu_modcem2_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_296_mathieu_modcem2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mathieu_modcem2_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2777
 *     cdef double y0
 *     cdef double y1
 *     mathieu_modcem2(x0, x1, x2, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_mathieu_modcem2(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2778
 *     cdef double y1
 *     mathieu_modcem2(x0, x1, x2, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void mathieu_modsem1(double x0, double x1, double x2, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2774
 *     _func_mcm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modcem2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2780
 *     return y0, y1
 * 
 * cdef void mathieu_modsem1(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modsem1"""
 *     _func_msm1_wrap(x0, x1, x2, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_mathieu_modsem1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2782
 * cdef void mathieu_modsem1(double x0, double x1, double x2, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.mathieu_modsem1"""
 *     _func_msm1_wrap(x0, x1, x2, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _mathieu_modsem1_pywrap(double x0, double x1, double x2):
 */
  (void)(msm1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2780
 *     return y0, y1
 * 
 * cdef void mathieu_modsem1(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modsem1"""
 *     _func_msm1_wrap(x0, x1, x2, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2784
 *     _func_msm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_299_mathieu_modsem1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_299_mathieu_modsem1_pywrap = {"_mathieu_modsem1_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_299_mathieu_modsem1_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_299_mathieu_modsem1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mathieu_modsem1_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modsem1_pywrap", 1, 3, 3, 1); __PYX_ERR(1, 2784, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modsem1_pywrap", 1, 3, 3, 2); __PYX_ERR(1, 2784, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_mathieu_modsem1_pywrap") < 0)) __PYX_ERR(1, 2784, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2784, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2784, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2784, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mathieu_modsem1_pywrap", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2784, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modsem1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_298_mathieu_modsem1_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_298_mathieu_modsem1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mathieu_modsem1_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2787
 *     cdef double y0
 *     cdef double y1
 *     mathieu_modsem1(x0, x1, x2, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_mathieu_modsem1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2788
 *     cdef double y1
 *     mathieu_modsem1(x0, x1, x2, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void mathieu_modsem2(double x0, double x1, double x2, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2784
 *     _func_msm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modsem1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2790
 *     return y0, y1
 * 
 * cdef void mathieu_modsem2(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modsem2"""
 *     _func_msm2_wrap(x0, x1, x2, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_mathieu_modsem2(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2792
 * cdef void mathieu_modsem2(double x0, double x1, double x2, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.mathieu_modsem2"""
 *     _func_msm2_wrap(x0, x1, x2, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _mathieu_modsem2_pywrap(double x0, double x1, double x2):
 */
  (void)(msm2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2790
 *     return y0, y1
 * 
 * cdef void mathieu_modsem2(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_modsem2"""
 *     _func_msm2_wrap(x0, x1, x2, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2794
 *     _func_msm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_301_mathieu_modsem2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_301_mathieu_modsem2_pywrap = {"_mathieu_modsem2_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_301_mathieu_modsem2_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_301_mathieu_modsem2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mathieu_modsem2_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modsem2_pywrap", 1, 3, 3, 1); __PYX_ERR(1, 2794, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_modsem2_pywrap", 1, 3, 3, 2); __PYX_ERR(1, 2794, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_mathieu_modsem2_pywrap") < 0)) __PYX_ERR(1, 2794, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2794, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2794, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2794, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mathieu_modsem2_pywrap", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2794, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modsem2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_300_mathieu_modsem2_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_300_mathieu_modsem2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mathieu_modsem2_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2797
 *     cdef double y0
 *     cdef double y1
 *     mathieu_modsem2(x0, x1, x2, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_mathieu_modsem2(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2798
 *     cdef double y1
 *     mathieu_modsem2(x0, x1, x2, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void mathieu_sem(double x0, double x1, double x2, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2794
 *     _func_msm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_modsem2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2800
 *     return y0, y1
 * 
 * cdef void mathieu_sem(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_sem"""
 *     _func_sem_wrap(x0, x1, x2, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_mathieu_sem(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2802
 * cdef void mathieu_sem(double x0, double x1, double x2, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.mathieu_sem"""
 *     _func_sem_wrap(x0, x1, x2, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _mathieu_sem_pywrap(double x0, double x1, double x2):
 */
  (void)(sem_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2800
 *     return y0, y1
 * 
 * cdef void mathieu_sem(double x0, double x1, double x2, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.mathieu_sem"""
 *     _func_sem_wrap(x0, x1, x2, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2804
 *     _func_sem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_sem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_303_mathieu_sem_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_303_mathieu_sem_pywrap = {"_mathieu_sem_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_303_mathieu_sem_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_303_mathieu_sem_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_mathieu_sem_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_sem_pywrap", 1, 3, 3, 1); __PYX_ERR(1, 2804, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_mathieu_sem_pywrap", 1, 3, 3, 2); __PYX_ERR(1, 2804, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_mathieu_sem_pywrap") < 0)) __PYX_ERR(1, 2804, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2804, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2804, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2804, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_mathieu_sem_pywrap", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2804, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_sem_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_302_mathieu_sem_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_302_mathieu_sem_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_mathieu_sem_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2807
 *     cdef double y0
 *     cdef double y1
 *     mathieu_sem(x0, x1, x2, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_mathieu_sem(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2808
 *     cdef double y1
 *     mathieu_sem(x0, x1, x2, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void modfresnelm(double x0, double complex *y0, double complex *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2804
 *     _func_sem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_sem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._mathieu_sem_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2810
 *     return y0, y1
 * 
 * cdef void modfresnelm(double x0, double complex *y0, double complex *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.modfresnelm"""
 *     cdef npy_cdouble tmp0
 */

static void __pyx_f_5scipy_7special_14cython_special_modfresnelm(double __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1) {
  npy_cdouble __pyx_v_tmp0;
  npy_cdouble __pyx_v_tmp1;

  /* "scipy/special/cython_special.pyx":2814
 *     cdef npy_cdouble tmp0
 *     cdef npy_cdouble tmp1
 *     _func_modified_fresnel_minus_wrap(x0, &tmp0, &tmp1)             # <<<<<<<<<<<<<<
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 */
  (void)(modified_fresnel_minus_wrap(__pyx_v_x0, (&__pyx_v_tmp0), (&__pyx_v_tmp1)));

  /* "scipy/special/cython_special.pyx":2815
 *     cdef npy_cdouble tmp1
 *     _func_modified_fresnel_minus_wrap(x0, &tmp0, &tmp1)
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)             # <<<<<<<<<<<<<<
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 */
  (__pyx_v_y0[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp0);

  /* "scipy/special/cython_special.pyx":2816
 *     _func_modified_fresnel_minus_wrap(x0, &tmp0, &tmp1)
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)             # <<<<<<<<<<<<<<
 * 
 * def _modfresnelm_pywrap(double x0):
 */
  (__pyx_v_y1[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp1);

  /* "scipy/special/cython_special.pyx":2810
 *     return y0, y1
 * 
 * cdef void modfresnelm(double x0, double complex *y0, double complex *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.modfresnelm"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2818
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelm_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_305_modfresnelm_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_305_modfresnelm_pywrap = {"_modfresnelm_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_305_modfresnelm_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_305_modfresnelm_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_modfresnelm_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2818, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._modfresnelm_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_304_modfresnelm_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_304_modfresnelm_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_modfresnelm_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2821
 *     cdef double complex y0
 *     cdef double complex y1
 *     modfresnelm(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_modfresnelm(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2822
 *     cdef double complex y1
 *     modfresnelm(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void modfresnelp(double x0, double complex *y0, double complex *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2818
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelm_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._modfresnelm_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2824
 *     return y0, y1
 * 
 * cdef void modfresnelp(double x0, double complex *y0, double complex *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.modfresnelp"""
 *     cdef npy_cdouble tmp0
 */

static void __pyx_f_5scipy_7special_14cython_special_modfresnelp(double __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1) {
  npy_cdouble __pyx_v_tmp0;
  npy_cdouble __pyx_v_tmp1;

  /* "scipy/special/cython_special.pyx":2828
 *     cdef npy_cdouble tmp0
 *     cdef npy_cdouble tmp1
 *     _func_modified_fresnel_plus_wrap(x0, &tmp0, &tmp1)             # <<<<<<<<<<<<<<
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 */
  (void)(modified_fresnel_plus_wrap(__pyx_v_x0, (&__pyx_v_tmp0), (&__pyx_v_tmp1)));

  /* "scipy/special/cython_special.pyx":2829
 *     cdef npy_cdouble tmp1
 *     _func_modified_fresnel_plus_wrap(x0, &tmp0, &tmp1)
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)             # <<<<<<<<<<<<<<
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 */
  (__pyx_v_y0[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp0);

  /* "scipy/special/cython_special.pyx":2830
 *     _func_modified_fresnel_plus_wrap(x0, &tmp0, &tmp1)
 *     y0[0] = _complexstuff.double_complex_from_npy_cdouble(tmp0)
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)             # <<<<<<<<<<<<<<
 * 
 * def _modfresnelp_pywrap(double x0):
 */
  (__pyx_v_y1[0]) = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_tmp1);

  /* "scipy/special/cython_special.pyx":2824
 *     return y0, y1
 * 
 * cdef void modfresnelp(double x0, double complex *y0, double complex *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.modfresnelp"""
 *     cdef npy_cdouble tmp0
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2832
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelp_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_307_modfresnelp_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_307_modfresnelp_pywrap = {"_modfresnelp_pywrap", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_307_modfresnelp_pywrap, METH_O, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_307_modfresnelp_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_modfresnelp_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2832, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._modfresnelp_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_306_modfresnelp_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_306_modfresnelp_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_modfresnelp_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2835
 *     cdef double complex y0
 *     cdef double complex y1
 *     modfresnelp(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_modfresnelp(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2836
 *     cdef double complex y1
 *     modfresnelp(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double modstruve(double x0, double x1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2832
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelp_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._modfresnelp_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2838
 *     return y0, y1
 * 
 * cpdef double modstruve(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.modstruve"""
 *     return _func_struve_l(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_309modstruve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_modstruve(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2840
 * cpdef double modstruve(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.modstruve"""
 *     return _func_struve_l(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nbdtr(dl_number_t x0, dl_number_t x1, double x2) nogil:
 */
  __pyx_r = struve_l(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2838
 *     return y0, y1
 * 
 * cpdef double modstruve(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.modstruve"""
 *     return _func_struve_l(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_309modstruve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_308modstruve[] = "See the documentation for scipy.special.modstruve";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_309modstruve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("modstruve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("modstruve", 1, 2, 2, 1); __PYX_ERR(1, 2838, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "modstruve") < 0)) __PYX_ERR(1, 2838, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2838, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2838, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("modstruve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2838, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.modstruve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_308modstruve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_308modstruve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("modstruve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_modstruve(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.modstruve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2842
 *     return _func_struve_l(x0, x1)
 * 
 * cpdef double nbdtr(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtr"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_311nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_310nbdtr[] = "See the documentation for scipy.special.nbdtr";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_311nbdtr = {"nbdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_311nbdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_310nbdtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_311nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2842, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2842, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2842, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2842, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2842, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_310nbdtr(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_310nbdtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nbdtr", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2842, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2842, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2842, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2842, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2842, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2842, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2842, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2842, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2842, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2842, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2842, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2842, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2842, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2842, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2842, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2842, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2842, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2842, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2842, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2842, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_851__pyx_fuse_0nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_311nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2845
 *     """See the documentation for scipy.special.nbdtr"""
 *     if dl_number_t is double:
 *         return _func_nbdtr_unsafe(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_nbdtr(x0, x1, x2)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_nbdtr_unsafe(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2842
 *     return _func_struve_l(x0, x1)
 * 
 * cpdef double nbdtr(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtr"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_851__pyx_fuse_0nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_851__pyx_fuse_0nbdtr = {"__pyx_fuse_0nbdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_851__pyx_fuse_0nbdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_310nbdtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_851__pyx_fuse_0nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0nbdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtr", 1, 3, 3, 1); __PYX_ERR(1, 2842, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtr", 1, 3, 3, 2); __PYX_ERR(1, 2842, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0nbdtr") < 0)) __PYX_ERR(1, 2842, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2842, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2842, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2842, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2842, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0nbdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_850__pyx_fuse_0nbdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_850__pyx_fuse_0nbdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0nbdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0nbdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_853__pyx_fuse_1nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_311nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtr(long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2847
 *         return _func_nbdtr_unsafe(x0, x1, x2)
 *     elif dl_number_t is long:
 *         return _func_nbdtr(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = nbdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2842
 *     return _func_struve_l(x0, x1)
 * 
 * cpdef double nbdtr(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtr"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_853__pyx_fuse_1nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_853__pyx_fuse_1nbdtr = {"__pyx_fuse_1nbdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_853__pyx_fuse_1nbdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_310nbdtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_853__pyx_fuse_1nbdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  long __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1nbdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtr", 1, 3, 3, 1); __PYX_ERR(1, 2842, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtr", 1, 3, 3, 2); __PYX_ERR(1, 2842, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1nbdtr") < 0)) __PYX_ERR(1, 2842, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2842, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_x1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2842, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2842, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2842, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1nbdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_852__pyx_fuse_1nbdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_852__pyx_fuse_1nbdtr(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1nbdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1nbdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2851
 *         return NPY_NAN
 * 
 * cpdef double nbdtrc(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrc"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_313nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_312nbdtrc[] = "See the documentation for scipy.special.nbdtrc";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_313nbdtrc = {"nbdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_313nbdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_312nbdtrc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_313nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2851, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2851, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2851, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_312nbdtrc(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_312nbdtrc(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nbdtrc", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2851, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2851, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2851, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2851, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2851, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2851, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2851, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2851, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2851, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2851, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2851, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2851, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2851, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2851, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2851, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2851, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2851, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2851, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2851, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2851, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2851, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_857__pyx_fuse_0nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_313nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtrc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2854
 *     """See the documentation for scipy.special.nbdtrc"""
 *     if dl_number_t is double:
 *         return _func_nbdtrc_unsafe(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_nbdtrc(x0, x1, x2)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_nbdtrc_unsafe(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2851
 *         return NPY_NAN
 * 
 * cpdef double nbdtrc(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrc"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_857__pyx_fuse_0nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_857__pyx_fuse_0nbdtrc = {"__pyx_fuse_0nbdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_857__pyx_fuse_0nbdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_312nbdtrc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_857__pyx_fuse_0nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0nbdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtrc", 1, 3, 3, 1); __PYX_ERR(1, 2851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtrc", 1, 3, 3, 2); __PYX_ERR(1, 2851, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0nbdtrc") < 0)) __PYX_ERR(1, 2851, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2851, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2851, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2851, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtrc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2851, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0nbdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_856__pyx_fuse_0nbdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_856__pyx_fuse_0nbdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0nbdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0nbdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_859__pyx_fuse_1nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_313nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtrc(long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2856
 *         return _func_nbdtrc_unsafe(x0, x1, x2)
 *     elif dl_number_t is long:
 *         return _func_nbdtrc(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = nbdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2851
 *         return NPY_NAN
 * 
 * cpdef double nbdtrc(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrc"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_859__pyx_fuse_1nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_859__pyx_fuse_1nbdtrc = {"__pyx_fuse_1nbdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_859__pyx_fuse_1nbdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_312nbdtrc};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_859__pyx_fuse_1nbdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  long __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1nbdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtrc", 1, 3, 3, 1); __PYX_ERR(1, 2851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtrc", 1, 3, 3, 2); __PYX_ERR(1, 2851, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1nbdtrc") < 0)) __PYX_ERR(1, 2851, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2851, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_x1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2851, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2851, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtrc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2851, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1nbdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_858__pyx_fuse_1nbdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_858__pyx_fuse_1nbdtrc(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1nbdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtrc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1nbdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2860
 *         return NPY_NAN
 * 
 * cpdef double nbdtri(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtri"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_315nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_314nbdtri[] = "See the documentation for scipy.special.nbdtri";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_315nbdtri = {"nbdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_315nbdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_314nbdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_315nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2860, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2860, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2860, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2860, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2860, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_314nbdtri(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_314nbdtri(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nbdtri", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2860, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2860, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2860, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2860, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2860, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2860, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2860, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_3);
    __Pyx_GIVEREF(__pyx_int_3);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2860, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2860, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2860, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2860, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2860, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2860, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2860, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2860, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2860, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2860, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2860, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2860, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2860, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_863__pyx_fuse_0nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_315nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtri(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2863
 *     """See the documentation for scipy.special.nbdtri"""
 *     if dl_number_t is double:
 *         return _func_nbdtri_unsafe(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_nbdtri(x0, x1, x2)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_nbdtri_unsafe(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2860
 *         return NPY_NAN
 * 
 * cpdef double nbdtri(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtri"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_863__pyx_fuse_0nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_863__pyx_fuse_0nbdtri = {"__pyx_fuse_0nbdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_863__pyx_fuse_0nbdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_314nbdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_863__pyx_fuse_0nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0nbdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtri", 1, 3, 3, 1); __PYX_ERR(1, 2860, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtri", 1, 3, 3, 2); __PYX_ERR(1, 2860, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0nbdtri") < 0)) __PYX_ERR(1, 2860, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2860, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2860, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2860, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0nbdtri", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2860, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0nbdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_862__pyx_fuse_0nbdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_862__pyx_fuse_0nbdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0nbdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0nbdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_865__pyx_fuse_1nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_315nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtri(long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2865
 *         return _func_nbdtri_unsafe(x0, x1, x2)
 *     elif dl_number_t is long:
 *         return _func_nbdtri(x0, x1, x2)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = nbdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2860
 *         return NPY_NAN
 * 
 * cpdef double nbdtri(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtri"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_865__pyx_fuse_1nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_865__pyx_fuse_1nbdtri = {"__pyx_fuse_1nbdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_865__pyx_fuse_1nbdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_314nbdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_865__pyx_fuse_1nbdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  long __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1nbdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtri", 1, 3, 3, 1); __PYX_ERR(1, 2860, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtri", 1, 3, 3, 2); __PYX_ERR(1, 2860, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1nbdtri") < 0)) __PYX_ERR(1, 2860, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2860, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_x1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 2860, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2860, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1nbdtri", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2860, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1nbdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_864__pyx_fuse_1nbdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_864__pyx_fuse_1nbdtri(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1nbdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1nbdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2869
 *         return NPY_NAN
 * 
 * cpdef double nbdtrik(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrik"""
 *     return _func_cdfnbn2_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_317nbdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nbdtrik(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2871
 * cpdef double nbdtrik(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nbdtrik"""
 *     return _func_cdfnbn2_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nbdtrin(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfnbn2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2869
 *         return NPY_NAN
 * 
 * cpdef double nbdtrik(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrik"""
 *     return _func_cdfnbn2_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_317nbdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_316nbdtrik[] = "See the documentation for scipy.special.nbdtrik";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_317nbdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nbdtrik (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nbdtrik", 1, 3, 3, 1); __PYX_ERR(1, 2869, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nbdtrik", 1, 3, 3, 2); __PYX_ERR(1, 2869, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nbdtrik") < 0)) __PYX_ERR(1, 2869, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2869, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2869, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2869, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nbdtrik", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2869, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nbdtrik", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_316nbdtrik(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_316nbdtrik(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nbdtrik", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nbdtrik(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nbdtrik", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2873
 *     return _func_cdfnbn2_wrap(x0, x1, x2)
 * 
 * cpdef double nbdtrin(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrin"""
 *     return _func_cdfnbn3_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_319nbdtrin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nbdtrin(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2875
 * cpdef double nbdtrin(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nbdtrin"""
 *     return _func_cdfnbn3_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ncfdtr(double x0, double x1, double x2, double x3) nogil:
 */
  __pyx_r = cdfnbn3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2873
 *     return _func_cdfnbn2_wrap(x0, x1, x2)
 * 
 * cpdef double nbdtrin(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrin"""
 *     return _func_cdfnbn3_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_319nbdtrin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_318nbdtrin[] = "See the documentation for scipy.special.nbdtrin";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_319nbdtrin(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nbdtrin (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nbdtrin", 1, 3, 3, 1); __PYX_ERR(1, 2873, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nbdtrin", 1, 3, 3, 2); __PYX_ERR(1, 2873, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nbdtrin") < 0)) __PYX_ERR(1, 2873, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2873, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2873, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2873, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nbdtrin", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2873, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nbdtrin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_318nbdtrin(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_318nbdtrin(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nbdtrin", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nbdtrin(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nbdtrin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2877
 *     return _func_cdfnbn3_wrap(x0, x1, x2)
 * 
 * cpdef double ncfdtr(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtr"""
 *     return _func_cdffnc1_wrap(x0, x1, x2, x3)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_321ncfdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2879
 * cpdef double ncfdtr(double x0, double x1, double x2, double x3) nogil:
 *     """See the documentation for scipy.special.ncfdtr"""
 *     return _func_cdffnc1_wrap(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ncfdtri(double x0, double x1, double x2, double x3) nogil:
 */
  __pyx_r = cdffnc1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2877
 *     return _func_cdfnbn3_wrap(x0, x1, x2)
 * 
 * cpdef double ncfdtr(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtr"""
 *     return _func_cdffnc1_wrap(x0, x1, x2, x3)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_321ncfdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_320ncfdtr[] = "See the documentation for scipy.special.ncfdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_321ncfdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncfdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtr", 1, 4, 4, 1); __PYX_ERR(1, 2877, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtr", 1, 4, 4, 2); __PYX_ERR(1, 2877, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtr", 1, 4, 4, 3); __PYX_ERR(1, 2877, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ncfdtr") < 0)) __PYX_ERR(1, 2877, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2877, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2877, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2877, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2877, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncfdtr", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2877, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_320ncfdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_320ncfdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncfdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ncfdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2881
 *     return _func_cdffnc1_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtri(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtri"""
 *     return _func_cdffnc2_wrap(x0, x1, x2, x3)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_323ncfdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtri(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2883
 * cpdef double ncfdtri(double x0, double x1, double x2, double x3) nogil:
 *     """See the documentation for scipy.special.ncfdtri"""
 *     return _func_cdffnc2_wrap(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ncfdtridfd(double x0, double x1, double x2, double x3) nogil:
 */
  __pyx_r = cdffnc2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2881
 *     return _func_cdffnc1_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtri(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtri"""
 *     return _func_cdffnc2_wrap(x0, x1, x2, x3)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_323ncfdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_322ncfdtri[] = "See the documentation for scipy.special.ncfdtri";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_323ncfdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncfdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtri", 1, 4, 4, 1); __PYX_ERR(1, 2881, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtri", 1, 4, 4, 2); __PYX_ERR(1, 2881, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtri", 1, 4, 4, 3); __PYX_ERR(1, 2881, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ncfdtri") < 0)) __PYX_ERR(1, 2881, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2881, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2881, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2881, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2881, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncfdtri", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2881, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_322ncfdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_322ncfdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncfdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ncfdtri(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2885
 *     return _func_cdffnc2_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtridfd(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtridfd"""
 *     return _func_cdffnc4_wrap(x0, x1, x2, x3)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_325ncfdtridfd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtridfd(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2887
 * cpdef double ncfdtridfd(double x0, double x1, double x2, double x3) nogil:
 *     """See the documentation for scipy.special.ncfdtridfd"""
 *     return _func_cdffnc4_wrap(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ncfdtridfn(double x0, double x1, double x2, double x3) nogil:
 */
  __pyx_r = cdffnc4_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2885
 *     return _func_cdffnc2_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtridfd(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtridfd"""
 *     return _func_cdffnc4_wrap(x0, x1, x2, x3)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_325ncfdtridfd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_324ncfdtridfd[] = "See the documentation for scipy.special.ncfdtridfd";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_325ncfdtridfd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncfdtridfd (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtridfd", 1, 4, 4, 1); __PYX_ERR(1, 2885, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtridfd", 1, 4, 4, 2); __PYX_ERR(1, 2885, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtridfd", 1, 4, 4, 3); __PYX_ERR(1, 2885, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ncfdtridfd") < 0)) __PYX_ERR(1, 2885, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2885, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2885, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2885, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2885, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncfdtridfd", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2885, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtridfd", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_324ncfdtridfd(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_324ncfdtridfd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncfdtridfd", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ncfdtridfd(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtridfd", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2889
 *     return _func_cdffnc4_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtridfn(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtridfn"""
 *     return _func_cdffnc3_wrap(x0, x1, x2, x3)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_327ncfdtridfn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtridfn(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2891
 * cpdef double ncfdtridfn(double x0, double x1, double x2, double x3) nogil:
 *     """See the documentation for scipy.special.ncfdtridfn"""
 *     return _func_cdffnc3_wrap(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 * 
 * cpdef double ncfdtrinc(double x0, double x1, double x2, double x3) nogil:
 */
  __pyx_r = cdffnc3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2889
 *     return _func_cdffnc4_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtridfn(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtridfn"""
 *     return _func_cdffnc3_wrap(x0, x1, x2, x3)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_327ncfdtridfn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_326ncfdtridfn[] = "See the documentation for scipy.special.ncfdtridfn";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_327ncfdtridfn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncfdtridfn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtridfn", 1, 4, 4, 1); __PYX_ERR(1, 2889, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtridfn", 1, 4, 4, 2); __PYX_ERR(1, 2889, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtridfn", 1, 4, 4, 3); __PYX_ERR(1, 2889, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ncfdtridfn") < 0)) __PYX_ERR(1, 2889, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2889, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2889, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2889, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2889, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncfdtridfn", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2889, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtridfn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_326ncfdtridfn(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_326ncfdtridfn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncfdtridfn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ncfdtridfn(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtridfn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2893
 *     return _func_cdffnc3_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtrinc(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtrinc"""
 *     return _func_cdffnc5_wrap(x0, x1, x2, x3)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_329ncfdtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ncfdtrinc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2895
 * cpdef double ncfdtrinc(double x0, double x1, double x2, double x3) nogil:
 *     """See the documentation for scipy.special.ncfdtrinc"""
 *     return _func_cdffnc5_wrap(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nctdtr(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdffnc5_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2893
 *     return _func_cdffnc3_wrap(x0, x1, x2, x3)
 * 
 * cpdef double ncfdtrinc(double x0, double x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ncfdtrinc"""
 *     return _func_cdffnc5_wrap(x0, x1, x2, x3)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_329ncfdtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_328ncfdtrinc[] = "See the documentation for scipy.special.ncfdtrinc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_329ncfdtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncfdtrinc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtrinc", 1, 4, 4, 1); __PYX_ERR(1, 2893, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtrinc", 1, 4, 4, 2); __PYX_ERR(1, 2893, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("ncfdtrinc", 1, 4, 4, 3); __PYX_ERR(1, 2893, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ncfdtrinc") < 0)) __PYX_ERR(1, 2893, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2893, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2893, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2893, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2893, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncfdtrinc", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2893, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtrinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_328ncfdtrinc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_328ncfdtrinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncfdtrinc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ncfdtrinc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ncfdtrinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2897
 *     return _func_cdffnc5_wrap(x0, x1, x2, x3)
 * 
 * cpdef double nctdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtr"""
 *     return _func_cdftnc1_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_331nctdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtr(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2899
 * cpdef double nctdtr(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nctdtr"""
 *     return _func_cdftnc1_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nctdtridf(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdftnc1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2897
 *     return _func_cdffnc5_wrap(x0, x1, x2, x3)
 * 
 * cpdef double nctdtr(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtr"""
 *     return _func_cdftnc1_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_331nctdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_330nctdtr[] = "See the documentation for scipy.special.nctdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_331nctdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nctdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtr", 1, 3, 3, 1); __PYX_ERR(1, 2897, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtr", 1, 3, 3, 2); __PYX_ERR(1, 2897, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nctdtr") < 0)) __PYX_ERR(1, 2897, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2897, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2897, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2897, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nctdtr", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2897, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_330nctdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_330nctdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nctdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nctdtr(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2901
 *     return _func_cdftnc1_wrap(x0, x1, x2)
 * 
 * cpdef double nctdtridf(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtridf"""
 *     return _func_cdftnc3_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_333nctdtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtridf(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2903
 * cpdef double nctdtridf(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nctdtridf"""
 *     return _func_cdftnc3_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nctdtrinc(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdftnc3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2901
 *     return _func_cdftnc1_wrap(x0, x1, x2)
 * 
 * cpdef double nctdtridf(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtridf"""
 *     return _func_cdftnc3_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_333nctdtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_332nctdtridf[] = "See the documentation for scipy.special.nctdtridf";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_333nctdtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nctdtridf (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtridf", 1, 3, 3, 1); __PYX_ERR(1, 2901, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtridf", 1, 3, 3, 2); __PYX_ERR(1, 2901, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nctdtridf") < 0)) __PYX_ERR(1, 2901, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2901, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2901, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2901, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nctdtridf", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2901, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtridf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_332nctdtridf(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_332nctdtridf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nctdtridf", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nctdtridf(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtridf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2905
 *     return _func_cdftnc3_wrap(x0, x1, x2)
 * 
 * cpdef double nctdtrinc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtrinc"""
 *     return _func_cdftnc4_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_335nctdtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtrinc(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2907
 * cpdef double nctdtrinc(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nctdtrinc"""
 *     return _func_cdftnc4_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nctdtrit(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdftnc4_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2905
 *     return _func_cdftnc3_wrap(x0, x1, x2)
 * 
 * cpdef double nctdtrinc(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtrinc"""
 *     return _func_cdftnc4_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_335nctdtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_334nctdtrinc[] = "See the documentation for scipy.special.nctdtrinc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_335nctdtrinc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nctdtrinc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtrinc", 1, 3, 3, 1); __PYX_ERR(1, 2905, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtrinc", 1, 3, 3, 2); __PYX_ERR(1, 2905, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nctdtrinc") < 0)) __PYX_ERR(1, 2905, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2905, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2905, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2905, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nctdtrinc", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2905, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtrinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_334nctdtrinc(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_334nctdtrinc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nctdtrinc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nctdtrinc(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2905, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtrinc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2909
 *     return _func_cdftnc4_wrap(x0, x1, x2)
 * 
 * cpdef double nctdtrit(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtrit"""
 *     return _func_cdftnc2_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_337nctdtrit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nctdtrit(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2911
 * cpdef double nctdtrit(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nctdtrit"""
 *     return _func_cdftnc2_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t ndtr(Dd_number_t x0) nogil:
 */
  __pyx_r = cdftnc2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2909
 *     return _func_cdftnc4_wrap(x0, x1, x2)
 * 
 * cpdef double nctdtrit(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nctdtrit"""
 *     return _func_cdftnc2_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_337nctdtrit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_336nctdtrit[] = "See the documentation for scipy.special.nctdtrit";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_337nctdtrit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nctdtrit (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtrit", 1, 3, 3, 1); __PYX_ERR(1, 2909, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nctdtrit", 1, 3, 3, 2); __PYX_ERR(1, 2909, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nctdtrit") < 0)) __PYX_ERR(1, 2909, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2909, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2909, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2909, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nctdtrit", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2909, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtrit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_336nctdtrit(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_336nctdtrit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nctdtrit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nctdtrit(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nctdtrit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2913
 *     return _func_cdftnc2_wrap(x0, x1, x2)
 * 
 * cpdef Dd_number_t ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ndtr"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_339ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_338ndtr[] = "See the documentation for scipy.special.ndtr";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_339ndtr = {"ndtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_339ndtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_338ndtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_339ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 2913, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 2913, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 2913, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 2913, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2913, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_338ndtr(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_338ndtr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ndtr", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 2913, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2913, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2913, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2913, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2913, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 2913, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2913, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2913, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2913, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2913, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 2913, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 2913, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2913, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2913, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 2913, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 2913, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2913, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 2913, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 2913, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 2913, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 2913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_869__pyx_fuse_0ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_339ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ndtr(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":2916
 *     """See the documentation for scipy.special.ndtr"""
 *     if Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_ndtr)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_ndtr(x0)
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_ndtr)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2913
 *     return _func_cdftnc2_wrap(x0, x1, x2)
 * 
 * cpdef Dd_number_t ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ndtr"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_869__pyx_fuse_0ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_869__pyx_fuse_0ndtr = {"__pyx_fuse_0ndtr", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_869__pyx_fuse_0ndtr, METH_O, __pyx_doc_5scipy_7special_14cython_special_338ndtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_869__pyx_fuse_0ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0ndtr (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 2913, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_868__pyx_fuse_0ndtr(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_868__pyx_fuse_0ndtr(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0ndtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ndtr(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_871__pyx_fuse_1ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_339ndtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ndtr(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2918
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_ndtr)(x0)
 *     elif Dd_number_t is double:
 *         return _func_ndtr(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = ndtr(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2913
 *     return _func_cdftnc2_wrap(x0, x1, x2)
 * 
 * cpdef Dd_number_t ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ndtr"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_871__pyx_fuse_1ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_871__pyx_fuse_1ndtr = {"__pyx_fuse_1ndtr", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_871__pyx_fuse_1ndtr, METH_O, __pyx_doc_5scipy_7special_14cython_special_338ndtr};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_871__pyx_fuse_1ndtr(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1ndtr (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2913, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_870__pyx_fuse_1ndtr(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_870__pyx_fuse_1ndtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1ndtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ndtr(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1ndtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2925
 *             return NPY_NAN
 * 
 * cpdef double ndtri(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ndtri"""
 *     return _func_ndtri(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_341ndtri(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_ndtri(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2927
 * cpdef double ndtri(double x0) nogil:
 *     """See the documentation for scipy.special.ndtri"""
 *     return _func_ndtri(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nrdtrimn(double x0, double x1, double x2) nogil:
 */
  __pyx_r = ndtri(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2925
 *             return NPY_NAN
 * 
 * cpdef double ndtri(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ndtri"""
 *     return _func_ndtri(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_341ndtri(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_340ndtri[] = "See the documentation for scipy.special.ndtri";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_341ndtri(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ndtri (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2925, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.ndtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_340ndtri(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_340ndtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ndtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_ndtri(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.ndtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2929
 *     return _func_ndtri(x0)
 * 
 * cpdef double nrdtrimn(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nrdtrimn"""
 *     return _func_cdfnor3_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_343nrdtrimn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nrdtrimn(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2931
 * cpdef double nrdtrimn(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nrdtrimn"""
 *     return _func_cdfnor3_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double nrdtrisd(double x0, double x1, double x2) nogil:
 */
  __pyx_r = cdfnor3_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2929
 *     return _func_ndtri(x0)
 * 
 * cpdef double nrdtrimn(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nrdtrimn"""
 *     return _func_cdfnor3_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_343nrdtrimn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_342nrdtrimn[] = "See the documentation for scipy.special.nrdtrimn";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_343nrdtrimn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nrdtrimn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nrdtrimn", 1, 3, 3, 1); __PYX_ERR(1, 2929, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nrdtrimn", 1, 3, 3, 2); __PYX_ERR(1, 2929, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nrdtrimn") < 0)) __PYX_ERR(1, 2929, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2929, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2929, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2929, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nrdtrimn", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2929, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nrdtrimn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_342nrdtrimn(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_342nrdtrimn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nrdtrimn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nrdtrimn(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nrdtrimn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2933
 *     return _func_cdfnor3_wrap(x0, x1, x2)
 * 
 * cpdef double nrdtrisd(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nrdtrisd"""
 *     return _func_cdfnor4_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_345nrdtrisd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_nrdtrisd(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2935
 * cpdef double nrdtrisd(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.nrdtrisd"""
 *     return _func_cdfnor4_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cdef void obl_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 */
  __pyx_r = cdfnor4_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2933
 *     return _func_cdfnor3_wrap(x0, x1, x2)
 * 
 * cpdef double nrdtrisd(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nrdtrisd"""
 *     return _func_cdfnor4_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_345nrdtrisd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_344nrdtrisd[] = "See the documentation for scipy.special.nrdtrisd";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_345nrdtrisd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nrdtrisd (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nrdtrisd", 1, 3, 3, 1); __PYX_ERR(1, 2933, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("nrdtrisd", 1, 3, 3, 2); __PYX_ERR(1, 2933, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "nrdtrisd") < 0)) __PYX_ERR(1, 2933, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2933, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2933, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2933, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nrdtrisd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2933, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.nrdtrisd", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_344nrdtrisd(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_344nrdtrisd(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nrdtrisd", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_nrdtrisd(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.nrdtrisd", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2937
 *     return _func_cdfnor4_wrap(x0, x1, x2)
 * 
 * cdef void obl_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_ang1"""
 *     y0[0] = _func_oblate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_obl_ang1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2939
 * cdef void obl_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.obl_ang1"""
 *     y0[0] = _func_oblate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)             # <<<<<<<<<<<<<<
 * 
 * def _obl_ang1_pywrap(double x0, double x1, double x2, double x3):
 */
  (__pyx_v_y0[0]) = oblate_aswfa_nocv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_y1);

  /* "scipy/special/cython_special.pyx":2937
 *     return _func_cdfnor4_wrap(x0, x1, x2)
 * 
 * cdef void obl_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_ang1"""
 *     y0[0] = _func_oblate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2941
 *     y0[0] = _func_oblate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_347_obl_ang1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_347_obl_ang1_pywrap = {"_obl_ang1_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_347_obl_ang1_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_347_obl_ang1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_obl_ang1_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_ang1_pywrap", 1, 4, 4, 1); __PYX_ERR(1, 2941, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_ang1_pywrap", 1, 4, 4, 2); __PYX_ERR(1, 2941, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_ang1_pywrap", 1, 4, 4, 3); __PYX_ERR(1, 2941, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_obl_ang1_pywrap") < 0)) __PYX_ERR(1, 2941, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2941, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2941, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2941, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2941, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_obl_ang1_pywrap", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2941, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._obl_ang1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_346_obl_ang1_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_346_obl_ang1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_obl_ang1_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2944
 *     cdef double y0
 *     cdef double y1
 *     obl_ang1(x0, x1, x2, x3, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_obl_ang1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2945
 *     cdef double y1
 *     obl_ang1(x0, x1, x2, x3, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void obl_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2941
 *     y0[0] = _func_oblate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._obl_ang1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2947
 *     return y0, y1
 * 
 * cdef void obl_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_ang1_cv"""
 *     _func_oblate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_obl_ang1_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2949
 * cdef void obl_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.obl_ang1_cv"""
 *     _func_oblate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _obl_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):
 */
  (void)(oblate_aswfa_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2947
 *     return y0, y1
 * 
 * cdef void obl_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_ang1_cv"""
 *     _func_oblate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2951
 *     _func_oblate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_349_obl_ang1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_349_obl_ang1_cv_pywrap = {"_obl_ang1_cv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_349_obl_ang1_cv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_349_obl_ang1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  double __pyx_v_x4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_obl_ang1_cv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,&__pyx_n_s_x4,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_ang1_cv_pywrap", 1, 5, 5, 1); __PYX_ERR(1, 2951, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_ang1_cv_pywrap", 1, 5, 5, 2); __PYX_ERR(1, 2951, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_ang1_cv_pywrap", 1, 5, 5, 3); __PYX_ERR(1, 2951, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_ang1_cv_pywrap", 1, 5, 5, 4); __PYX_ERR(1, 2951, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_obl_ang1_cv_pywrap") < 0)) __PYX_ERR(1, 2951, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2951, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2951, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2951, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2951, __pyx_L3_error)
    __pyx_v_x4 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_x4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2951, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_obl_ang1_cv_pywrap", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2951, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._obl_ang1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_348_obl_ang1_cv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_348_obl_ang1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_obl_ang1_cv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2954
 *     cdef double y0
 *     cdef double y1
 *     obl_ang1_cv(x0, x1, x2, x3, x4, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_obl_ang1_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2955
 *     cdef double y1
 *     obl_ang1_cv(x0, x1, x2, x3, x4, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double obl_cv(double x0, double x1, double x2) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2951
 *     _func_oblate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._obl_ang1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2957
 *     return y0, y1
 * 
 * cpdef double obl_cv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_cv"""
 *     return _func_oblate_segv_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_351obl_cv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_obl_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":2959
 * cpdef double obl_cv(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.obl_cv"""
 *     return _func_oblate_segv_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cdef void obl_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 */
  __pyx_r = oblate_segv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2957
 *     return y0, y1
 * 
 * cpdef double obl_cv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_cv"""
 *     return _func_oblate_segv_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_351obl_cv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_350obl_cv[] = "See the documentation for scipy.special.obl_cv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_351obl_cv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("obl_cv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("obl_cv", 1, 3, 3, 1); __PYX_ERR(1, 2957, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("obl_cv", 1, 3, 3, 2); __PYX_ERR(1, 2957, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "obl_cv") < 0)) __PYX_ERR(1, 2957, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2957, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2957, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2957, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("obl_cv", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2957, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.obl_cv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_350obl_cv(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_350obl_cv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("obl_cv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_obl_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.obl_cv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2961
 *     return _func_oblate_segv_wrap(x0, x1, x2)
 * 
 * cdef void obl_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad1"""
 *     y0[0] = _func_oblate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_obl_rad1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2963
 * cdef void obl_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.obl_rad1"""
 *     y0[0] = _func_oblate_radial1_nocv_wrap(x0, x1, x2, x3, y1)             # <<<<<<<<<<<<<<
 * 
 * def _obl_rad1_pywrap(double x0, double x1, double x2, double x3):
 */
  (__pyx_v_y0[0]) = oblate_radial1_nocv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_y1);

  /* "scipy/special/cython_special.pyx":2961
 *     return _func_oblate_segv_wrap(x0, x1, x2)
 * 
 * cdef void obl_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad1"""
 *     y0[0] = _func_oblate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2965
 *     y0[0] = _func_oblate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_353_obl_rad1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_353_obl_rad1_pywrap = {"_obl_rad1_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_353_obl_rad1_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_353_obl_rad1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_obl_rad1_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad1_pywrap", 1, 4, 4, 1); __PYX_ERR(1, 2965, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad1_pywrap", 1, 4, 4, 2); __PYX_ERR(1, 2965, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad1_pywrap", 1, 4, 4, 3); __PYX_ERR(1, 2965, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_obl_rad1_pywrap") < 0)) __PYX_ERR(1, 2965, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2965, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2965, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2965, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2965, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_obl_rad1_pywrap", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2965, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_352_obl_rad1_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_352_obl_rad1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_obl_rad1_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2968
 *     cdef double y0
 *     cdef double y1
 *     obl_rad1(x0, x1, x2, x3, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_obl_rad1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2969
 *     cdef double y1
 *     obl_rad1(x0, x1, x2, x3, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void obl_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2965
 *     y0[0] = _func_oblate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2971
 *     return y0, y1
 * 
 * cdef void obl_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad1_cv"""
 *     _func_oblate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_obl_rad1_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2973
 * cdef void obl_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.obl_rad1_cv"""
 *     _func_oblate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _obl_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):
 */
  (void)(oblate_radial1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2971
 *     return y0, y1
 * 
 * cdef void obl_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad1_cv"""
 *     _func_oblate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2975
 *     _func_oblate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_355_obl_rad1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_355_obl_rad1_cv_pywrap = {"_obl_rad1_cv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_355_obl_rad1_cv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_355_obl_rad1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  double __pyx_v_x4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_obl_rad1_cv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,&__pyx_n_s_x4,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad1_cv_pywrap", 1, 5, 5, 1); __PYX_ERR(1, 2975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad1_cv_pywrap", 1, 5, 5, 2); __PYX_ERR(1, 2975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad1_cv_pywrap", 1, 5, 5, 3); __PYX_ERR(1, 2975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad1_cv_pywrap", 1, 5, 5, 4); __PYX_ERR(1, 2975, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_obl_rad1_cv_pywrap") < 0)) __PYX_ERR(1, 2975, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2975, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2975, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2975, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2975, __pyx_L3_error)
    __pyx_v_x4 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_x4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2975, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_obl_rad1_cv_pywrap", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_354_obl_rad1_cv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_354_obl_rad1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_obl_rad1_cv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2978
 *     cdef double y0
 *     cdef double y1
 *     obl_rad1_cv(x0, x1, x2, x3, x4, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_obl_rad1_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2979
 *     cdef double y1
 *     obl_rad1_cv(x0, x1, x2, x3, x4, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void obl_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2975
 *     _func_oblate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2981
 *     return y0, y1
 * 
 * cdef void obl_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad2"""
 *     y0[0] = _func_oblate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_obl_rad2(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2983
 * cdef void obl_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.obl_rad2"""
 *     y0[0] = _func_oblate_radial2_nocv_wrap(x0, x1, x2, x3, y1)             # <<<<<<<<<<<<<<
 * 
 * def _obl_rad2_pywrap(double x0, double x1, double x2, double x3):
 */
  (__pyx_v_y0[0]) = oblate_radial2_nocv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_y1);

  /* "scipy/special/cython_special.pyx":2981
 *     return y0, y1
 * 
 * cdef void obl_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad2"""
 *     y0[0] = _func_oblate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2985
 *     y0[0] = _func_oblate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_357_obl_rad2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_357_obl_rad2_pywrap = {"_obl_rad2_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_357_obl_rad2_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_357_obl_rad2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_obl_rad2_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad2_pywrap", 1, 4, 4, 1); __PYX_ERR(1, 2985, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad2_pywrap", 1, 4, 4, 2); __PYX_ERR(1, 2985, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad2_pywrap", 1, 4, 4, 3); __PYX_ERR(1, 2985, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_obl_rad2_pywrap") < 0)) __PYX_ERR(1, 2985, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2985, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2985, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2985, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2985, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_obl_rad2_pywrap", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2985, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_356_obl_rad2_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_356_obl_rad2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_obl_rad2_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2988
 *     cdef double y0
 *     cdef double y1
 *     obl_rad2(x0, x1, x2, x3, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_obl_rad2(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2989
 *     cdef double y1
 *     obl_rad2(x0, x1, x2, x3, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void obl_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2985
 *     y0[0] = _func_oblate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":2991
 *     return y0, y1
 * 
 * cdef void obl_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad2_cv"""
 *     _func_oblate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_obl_rad2_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":2993
 * cdef void obl_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.obl_rad2_cv"""
 *     _func_oblate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _obl_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):
 */
  (void)(oblate_radial2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2991
 *     return y0, y1
 * 
 * cdef void obl_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.obl_rad2_cv"""
 *     _func_oblate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":2995
 *     _func_oblate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_359_obl_rad2_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_359_obl_rad2_cv_pywrap = {"_obl_rad2_cv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_359_obl_rad2_cv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_359_obl_rad2_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  double __pyx_v_x4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_obl_rad2_cv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,&__pyx_n_s_x4,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad2_cv_pywrap", 1, 5, 5, 1); __PYX_ERR(1, 2995, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad2_cv_pywrap", 1, 5, 5, 2); __PYX_ERR(1, 2995, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad2_cv_pywrap", 1, 5, 5, 3); __PYX_ERR(1, 2995, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_obl_rad2_cv_pywrap", 1, 5, 5, 4); __PYX_ERR(1, 2995, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_obl_rad2_cv_pywrap") < 0)) __PYX_ERR(1, 2995, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2995, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2995, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2995, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2995, __pyx_L3_error)
    __pyx_v_x4 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_x4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 2995, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_obl_rad2_cv_pywrap", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 2995, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad2_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_358_obl_rad2_cv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_358_obl_rad2_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_obl_rad2_cv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":2998
 *     cdef double y0
 *     cdef double y1
 *     obl_rad2_cv(x0, x1, x2, x3, x4, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_obl_rad2_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":2999
 *     cdef double y1
 *     obl_rad2_cv(x0, x1, x2, x3, x4, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double owens_t(double x0, double x1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":2995
 *     _func_oblate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._obl_rad2_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3001
 *     return y0, y1
 * 
 * cpdef double owens_t(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.owens_t"""
 *     return _func_owens_t(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_361owens_t(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_owens_t(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3003
 * cpdef double owens_t(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.owens_t"""
 *     return _func_owens_t(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cdef void pbdv(double x0, double x1, double *y0, double *y1) nogil:
 */
  __pyx_r = owens_t(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3001
 *     return y0, y1
 * 
 * cpdef double owens_t(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.owens_t"""
 *     return _func_owens_t(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_361owens_t(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_360owens_t[] = "See the documentation for scipy.special.owens_t";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_361owens_t(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("owens_t (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("owens_t", 1, 2, 2, 1); __PYX_ERR(1, 3001, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "owens_t") < 0)) __PYX_ERR(1, 3001, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3001, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3001, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("owens_t", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3001, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.owens_t", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_360owens_t(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_360owens_t(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("owens_t", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_owens_t(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.owens_t", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3005
 *     return _func_owens_t(x0, x1)
 * 
 * cdef void pbdv(double x0, double x1, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pbdv"""
 *     _func_pbdv_wrap(x0, x1, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pbdv(double __pyx_v_x0, double __pyx_v_x1, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3007
 * cdef void pbdv(double x0, double x1, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pbdv"""
 *     _func_pbdv_wrap(x0, x1, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pbdv_pywrap(double x0, double x1):
 */
  (void)(pbdv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3005
 *     return _func_owens_t(x0, x1)
 * 
 * cdef void pbdv(double x0, double x1, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pbdv"""
 *     _func_pbdv_wrap(x0, x1, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3009
 *     _func_pbdv_wrap(x0, x1, y0, y1)
 * 
 * def _pbdv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_363_pbdv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_363_pbdv_pywrap = {"_pbdv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_363_pbdv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_363_pbdv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pbdv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pbdv_pywrap", 1, 2, 2, 1); __PYX_ERR(1, 3009, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pbdv_pywrap") < 0)) __PYX_ERR(1, 3009, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3009, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3009, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pbdv_pywrap", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3009, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pbdv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_362_pbdv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_362_pbdv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pbdv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3012
 *     cdef double y0
 *     cdef double y1
 *     pbdv(x0, x1, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pbdv(__pyx_v_x0, __pyx_v_x1, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3013
 *     cdef double y1
 *     pbdv(x0, x1, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void pbvv(double x0, double x1, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3009
 *     _func_pbdv_wrap(x0, x1, y0, y1)
 * 
 * def _pbdv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pbdv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3015
 *     return y0, y1
 * 
 * cdef void pbvv(double x0, double x1, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pbvv"""
 *     _func_pbvv_wrap(x0, x1, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pbvv(double __pyx_v_x0, double __pyx_v_x1, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3017
 * cdef void pbvv(double x0, double x1, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pbvv"""
 *     _func_pbvv_wrap(x0, x1, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pbvv_pywrap(double x0, double x1):
 */
  (void)(pbvv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3015
 *     return y0, y1
 * 
 * cdef void pbvv(double x0, double x1, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pbvv"""
 *     _func_pbvv_wrap(x0, x1, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3019
 *     _func_pbvv_wrap(x0, x1, y0, y1)
 * 
 * def _pbvv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_365_pbvv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_365_pbvv_pywrap = {"_pbvv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_365_pbvv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_365_pbvv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pbvv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pbvv_pywrap", 1, 2, 2, 1); __PYX_ERR(1, 3019, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pbvv_pywrap") < 0)) __PYX_ERR(1, 3019, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3019, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3019, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pbvv_pywrap", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3019, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pbvv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_364_pbvv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_364_pbvv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pbvv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3022
 *     cdef double y0
 *     cdef double y1
 *     pbvv(x0, x1, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pbvv(__pyx_v_x0, __pyx_v_x1, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3023
 *     cdef double y1
 *     pbvv(x0, x1, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void pbwa(double x0, double x1, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3023, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3019
 *     _func_pbvv_wrap(x0, x1, y0, y1)
 * 
 * def _pbvv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pbvv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3025
 *     return y0, y1
 * 
 * cdef void pbwa(double x0, double x1, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pbwa"""
 *     _func_pbwa_wrap(x0, x1, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pbwa(double __pyx_v_x0, double __pyx_v_x1, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3027
 * cdef void pbwa(double x0, double x1, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pbwa"""
 *     _func_pbwa_wrap(x0, x1, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pbwa_pywrap(double x0, double x1):
 */
  (void)(pbwa_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3025
 *     return y0, y1
 * 
 * cdef void pbwa(double x0, double x1, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pbwa"""
 *     _func_pbwa_wrap(x0, x1, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3029
 *     _func_pbwa_wrap(x0, x1, y0, y1)
 * 
 * def _pbwa_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_367_pbwa_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_367_pbwa_pywrap = {"_pbwa_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_367_pbwa_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_367_pbwa_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pbwa_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pbwa_pywrap", 1, 2, 2, 1); __PYX_ERR(1, 3029, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pbwa_pywrap") < 0)) __PYX_ERR(1, 3029, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3029, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3029, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pbwa_pywrap", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3029, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pbwa_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_366_pbwa_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_366_pbwa_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pbwa_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3032
 *     cdef double y0
 *     cdef double y1
 *     pbwa(x0, x1, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pbwa(__pyx_v_x0, __pyx_v_x1, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3033
 *     cdef double y1
 *     pbwa(x0, x1, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double pdtr(double x0, double x1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3033, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3029
 *     _func_pbwa_wrap(x0, x1, y0, y1)
 * 
 * def _pbwa_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pbwa_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3035
 *     return y0, y1
 * 
 * cpdef double pdtr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtr"""
 *     return _func_pdtr(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_369pdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pdtr(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3037
 * cpdef double pdtr(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.pdtr"""
 *     return _func_pdtr(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double pdtrc(double x0, double x1) nogil:
 */
  __pyx_r = pdtr(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3035
 *     return y0, y1
 * 
 * cpdef double pdtr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtr"""
 *     return _func_pdtr(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_369pdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_368pdtr[] = "See the documentation for scipy.special.pdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_369pdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pdtr", 1, 2, 2, 1); __PYX_ERR(1, 3035, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pdtr") < 0)) __PYX_ERR(1, 3035, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3035, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3035, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pdtr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3035, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.pdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_368pdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_368pdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_pdtr(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3035, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.pdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3039
 *     return _func_pdtr(x0, x1)
 * 
 * cpdef double pdtrc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtrc"""
 *     return _func_pdtrc(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_371pdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pdtrc(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3041
 * cpdef double pdtrc(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.pdtrc"""
 *     return _func_pdtrc(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double pdtri(dl_number_t x0, double x1) nogil:
 */
  __pyx_r = pdtrc(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3039
 *     return _func_pdtr(x0, x1)
 * 
 * cpdef double pdtrc(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtrc"""
 *     return _func_pdtrc(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_371pdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_370pdtrc[] = "See the documentation for scipy.special.pdtrc";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_371pdtrc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pdtrc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pdtrc", 1, 2, 2, 1); __PYX_ERR(1, 3039, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pdtrc") < 0)) __PYX_ERR(1, 3039, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3039, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3039, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pdtrc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3039, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.pdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_370pdtrc(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_370pdtrc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pdtrc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_pdtrc(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.pdtrc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3043
 *     return _func_pdtrc(x0, x1)
 * 
 * cpdef double pdtri(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtri"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_373pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_372pdtri[] = "See the documentation for scipy.special.pdtri";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_373pdtri = {"pdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_373pdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_372pdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_373pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3043, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3043, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3043, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3043, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3043, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_372pdtri(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_372pdtri(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pdtri", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3043, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3043, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3043, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3043, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3043, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3043, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3043, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3043, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3043, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3043, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3043, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3043, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3043, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3043, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3043, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3043, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3043, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3043, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3043, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3043, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_875__pyx_fuse_0pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_373pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_pdtri(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3046
 *     """See the documentation for scipy.special.pdtri"""
 *     if dl_number_t is double:
 *         return _func_pdtri_unsafe(x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_pdtri(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_pdtri_unsafe(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3043
 *     return _func_pdtrc(x0, x1)
 * 
 * cpdef double pdtri(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtri"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_875__pyx_fuse_0pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_875__pyx_fuse_0pdtri = {"__pyx_fuse_0pdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_875__pyx_fuse_0pdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_372pdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_875__pyx_fuse_0pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0pdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0pdtri", 1, 2, 2, 1); __PYX_ERR(1, 3043, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0pdtri") < 0)) __PYX_ERR(1, 3043, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3043, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3043, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0pdtri", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3043, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0pdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_874__pyx_fuse_0pdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_874__pyx_fuse_0pdtri(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0pdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_pdtri(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0pdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_877__pyx_fuse_1pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_373pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_pdtri(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3048
 *         return _func_pdtri_unsafe(x0, x1)
 *     elif dl_number_t is long:
 *         return _func_pdtri(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = pdtri(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3043
 *     return _func_pdtrc(x0, x1)
 * 
 * cpdef double pdtri(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtri"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_877__pyx_fuse_1pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_877__pyx_fuse_1pdtri = {"__pyx_fuse_1pdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_877__pyx_fuse_1pdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_372pdtri};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_877__pyx_fuse_1pdtri(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1pdtri (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1pdtri", 1, 2, 2, 1); __PYX_ERR(1, 3043, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1pdtri") < 0)) __PYX_ERR(1, 3043, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 3043, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3043, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1pdtri", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3043, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1pdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_876__pyx_fuse_1pdtri(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_876__pyx_fuse_1pdtri(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1pdtri", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_pdtri(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1pdtri", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3052
 *         return NPY_NAN
 * 
 * cpdef double pdtrik(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtrik"""
 *     return _func_cdfpoi2_wrap(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_375pdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pdtrik(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3054
 * cpdef double pdtrik(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.pdtrik"""
 *     return _func_cdfpoi2_wrap(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double poch(double x0, double x1) nogil:
 */
  __pyx_r = cdfpoi2_wrap(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3052
 *         return NPY_NAN
 * 
 * cpdef double pdtrik(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtrik"""
 *     return _func_cdfpoi2_wrap(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_375pdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_374pdtrik[] = "See the documentation for scipy.special.pdtrik";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_375pdtrik(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pdtrik (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pdtrik", 1, 2, 2, 1); __PYX_ERR(1, 3052, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pdtrik") < 0)) __PYX_ERR(1, 3052, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3052, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3052, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pdtrik", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3052, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.pdtrik", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_374pdtrik(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_374pdtrik(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pdtrik", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_pdtrik(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.pdtrik", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3056
 *     return _func_cdfpoi2_wrap(x0, x1)
 * 
 * cpdef double poch(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.poch"""
 *     return _func_poch(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_377poch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_poch(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3058
 * cpdef double poch(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.poch"""
 *     return _func_poch(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cdef void pro_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 */
  __pyx_r = poch(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3056
 *     return _func_cdfpoi2_wrap(x0, x1)
 * 
 * cpdef double poch(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.poch"""
 *     return _func_poch(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_377poch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_376poch[] = "See the documentation for scipy.special.poch";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_377poch(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("poch (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("poch", 1, 2, 2, 1); __PYX_ERR(1, 3056, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "poch") < 0)) __PYX_ERR(1, 3056, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3056, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3056, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("poch", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3056, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.poch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_376poch(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_376poch(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("poch", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_poch(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.poch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3060
 *     return _func_poch(x0, x1)
 * 
 * cdef void pro_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_ang1"""
 *     y0[0] = _func_prolate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pro_ang1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3062
 * cdef void pro_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pro_ang1"""
 *     y0[0] = _func_prolate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pro_ang1_pywrap(double x0, double x1, double x2, double x3):
 */
  (__pyx_v_y0[0]) = prolate_aswfa_nocv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_y1);

  /* "scipy/special/cython_special.pyx":3060
 *     return _func_poch(x0, x1)
 * 
 * cdef void pro_ang1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_ang1"""
 *     y0[0] = _func_prolate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3064
 *     y0[0] = _func_prolate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_379_pro_ang1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_379_pro_ang1_pywrap = {"_pro_ang1_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_379_pro_ang1_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_379_pro_ang1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pro_ang1_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_ang1_pywrap", 1, 4, 4, 1); __PYX_ERR(1, 3064, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_ang1_pywrap", 1, 4, 4, 2); __PYX_ERR(1, 3064, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_ang1_pywrap", 1, 4, 4, 3); __PYX_ERR(1, 3064, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pro_ang1_pywrap") < 0)) __PYX_ERR(1, 3064, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3064, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3064, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3064, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3064, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pro_ang1_pywrap", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3064, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pro_ang1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_378_pro_ang1_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_378_pro_ang1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pro_ang1_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3067
 *     cdef double y0
 *     cdef double y1
 *     pro_ang1(x0, x1, x2, x3, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pro_ang1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3068
 *     cdef double y1
 *     pro_ang1(x0, x1, x2, x3, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void pro_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3064
 *     y0[0] = _func_prolate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pro_ang1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3070
 *     return y0, y1
 * 
 * cdef void pro_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_ang1_cv"""
 *     _func_prolate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pro_ang1_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3072
 * cdef void pro_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pro_ang1_cv"""
 *     _func_prolate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pro_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):
 */
  (void)(prolate_aswfa_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3070
 *     return y0, y1
 * 
 * cdef void pro_ang1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_ang1_cv"""
 *     _func_prolate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3074
 *     _func_prolate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_381_pro_ang1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_381_pro_ang1_cv_pywrap = {"_pro_ang1_cv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_381_pro_ang1_cv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_381_pro_ang1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  double __pyx_v_x4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pro_ang1_cv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,&__pyx_n_s_x4,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_ang1_cv_pywrap", 1, 5, 5, 1); __PYX_ERR(1, 3074, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_ang1_cv_pywrap", 1, 5, 5, 2); __PYX_ERR(1, 3074, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_ang1_cv_pywrap", 1, 5, 5, 3); __PYX_ERR(1, 3074, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_ang1_cv_pywrap", 1, 5, 5, 4); __PYX_ERR(1, 3074, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pro_ang1_cv_pywrap") < 0)) __PYX_ERR(1, 3074, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3074, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3074, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3074, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3074, __pyx_L3_error)
    __pyx_v_x4 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_x4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3074, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pro_ang1_cv_pywrap", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3074, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pro_ang1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_380_pro_ang1_cv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_380_pro_ang1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pro_ang1_cv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3077
 *     cdef double y0
 *     cdef double y1
 *     pro_ang1_cv(x0, x1, x2, x3, x4, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pro_ang1_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3078
 *     cdef double y1
 *     pro_ang1_cv(x0, x1, x2, x3, x4, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double pro_cv(double x0, double x1, double x2) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3074
 *     _func_prolate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pro_ang1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3080
 *     return y0, y1
 * 
 * cpdef double pro_cv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_cv"""
 *     return _func_prolate_segv_wrap(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_383pro_cv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pro_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3082
 * cpdef double pro_cv(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.pro_cv"""
 *     return _func_prolate_segv_wrap(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cdef void pro_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 */
  __pyx_r = prolate_segv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3080
 *     return y0, y1
 * 
 * cpdef double pro_cv(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_cv"""
 *     return _func_prolate_segv_wrap(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_383pro_cv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_382pro_cv[] = "See the documentation for scipy.special.pro_cv";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_383pro_cv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pro_cv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pro_cv", 1, 3, 3, 1); __PYX_ERR(1, 3080, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pro_cv", 1, 3, 3, 2); __PYX_ERR(1, 3080, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pro_cv") < 0)) __PYX_ERR(1, 3080, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3080, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3080, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3080, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pro_cv", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3080, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.pro_cv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_382pro_cv(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_382pro_cv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pro_cv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_pro_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.pro_cv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3084
 *     return _func_prolate_segv_wrap(x0, x1, x2)
 * 
 * cdef void pro_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad1"""
 *     y0[0] = _func_prolate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pro_rad1(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3086
 * cdef void pro_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pro_rad1"""
 *     y0[0] = _func_prolate_radial1_nocv_wrap(x0, x1, x2, x3, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pro_rad1_pywrap(double x0, double x1, double x2, double x3):
 */
  (__pyx_v_y0[0]) = prolate_radial1_nocv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_y1);

  /* "scipy/special/cython_special.pyx":3084
 *     return _func_prolate_segv_wrap(x0, x1, x2)
 * 
 * cdef void pro_rad1(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad1"""
 *     y0[0] = _func_prolate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3088
 *     y0[0] = _func_prolate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_385_pro_rad1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_385_pro_rad1_pywrap = {"_pro_rad1_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_385_pro_rad1_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_385_pro_rad1_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pro_rad1_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad1_pywrap", 1, 4, 4, 1); __PYX_ERR(1, 3088, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad1_pywrap", 1, 4, 4, 2); __PYX_ERR(1, 3088, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad1_pywrap", 1, 4, 4, 3); __PYX_ERR(1, 3088, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pro_rad1_pywrap") < 0)) __PYX_ERR(1, 3088, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3088, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3088, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3088, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3088, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pro_rad1_pywrap", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3088, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_384_pro_rad1_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_384_pro_rad1_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pro_rad1_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3091
 *     cdef double y0
 *     cdef double y1
 *     pro_rad1(x0, x1, x2, x3, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pro_rad1(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3092
 *     cdef double y1
 *     pro_rad1(x0, x1, x2, x3, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void pro_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3088
 *     y0[0] = _func_prolate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad1_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3094
 *     return y0, y1
 * 
 * cdef void pro_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad1_cv"""
 *     _func_prolate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pro_rad1_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3096
 * cdef void pro_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pro_rad1_cv"""
 *     _func_prolate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pro_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):
 */
  (void)(prolate_radial1_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3094
 *     return y0, y1
 * 
 * cdef void pro_rad1_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad1_cv"""
 *     _func_prolate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3098
 *     _func_prolate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_387_pro_rad1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_387_pro_rad1_cv_pywrap = {"_pro_rad1_cv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_387_pro_rad1_cv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_387_pro_rad1_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  double __pyx_v_x4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pro_rad1_cv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,&__pyx_n_s_x4,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad1_cv_pywrap", 1, 5, 5, 1); __PYX_ERR(1, 3098, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad1_cv_pywrap", 1, 5, 5, 2); __PYX_ERR(1, 3098, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad1_cv_pywrap", 1, 5, 5, 3); __PYX_ERR(1, 3098, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad1_cv_pywrap", 1, 5, 5, 4); __PYX_ERR(1, 3098, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pro_rad1_cv_pywrap") < 0)) __PYX_ERR(1, 3098, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3098, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3098, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3098, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3098, __pyx_L3_error)
    __pyx_v_x4 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_x4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3098, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pro_rad1_cv_pywrap", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3098, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_386_pro_rad1_cv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_386_pro_rad1_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pro_rad1_cv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3101
 *     cdef double y0
 *     cdef double y1
 *     pro_rad1_cv(x0, x1, x2, x3, x4, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pro_rad1_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3102
 *     cdef double y1
 *     pro_rad1_cv(x0, x1, x2, x3, x4, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void pro_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3098
 *     _func_prolate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad1_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3104
 *     return y0, y1
 * 
 * cdef void pro_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad2"""
 *     y0[0] = _func_prolate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pro_rad2(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3106
 * cdef void pro_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pro_rad2"""
 *     y0[0] = _func_prolate_radial2_nocv_wrap(x0, x1, x2, x3, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pro_rad2_pywrap(double x0, double x1, double x2, double x3):
 */
  (__pyx_v_y0[0]) = prolate_radial2_nocv_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_y1);

  /* "scipy/special/cython_special.pyx":3104
 *     return y0, y1
 * 
 * cdef void pro_rad2(double x0, double x1, double x2, double x3, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad2"""
 *     y0[0] = _func_prolate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3108
 *     y0[0] = _func_prolate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_389_pro_rad2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_389_pro_rad2_pywrap = {"_pro_rad2_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_389_pro_rad2_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_389_pro_rad2_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pro_rad2_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad2_pywrap", 1, 4, 4, 1); __PYX_ERR(1, 3108, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad2_pywrap", 1, 4, 4, 2); __PYX_ERR(1, 3108, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad2_pywrap", 1, 4, 4, 3); __PYX_ERR(1, 3108, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pro_rad2_pywrap") < 0)) __PYX_ERR(1, 3108, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3108, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3108, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3108, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3108, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pro_rad2_pywrap", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3108, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_388_pro_rad2_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_388_pro_rad2_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pro_rad2_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3111
 *     cdef double y0
 *     cdef double y1
 *     pro_rad2(x0, x1, x2, x3, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pro_rad2(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3112
 *     cdef double y1
 *     pro_rad2(x0, x1, x2, x3, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void pro_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3108
 *     y0[0] = _func_prolate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad2_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3114
 *     return y0, y1
 * 
 * cdef void pro_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad2_cv"""
 *     _func_prolate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

static void __pyx_f_5scipy_7special_14cython_special_pro_rad2_cv(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3116
 * cdef void pro_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:
 *     """See the documentation for scipy.special.pro_rad2_cv"""
 *     _func_prolate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)             # <<<<<<<<<<<<<<
 * 
 * def _pro_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):
 */
  (void)(prolate_radial2_wrap(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3114
 *     return y0, y1
 * 
 * cdef void pro_rad2_cv(double x0, double x1, double x2, double x3, double x4, double *y0, double *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pro_rad2_cv"""
 *     _func_prolate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3118
 *     _func_prolate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_391_pro_rad2_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_391_pro_rad2_cv_pywrap = {"_pro_rad2_cv_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_391_pro_rad2_cv_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_391_pro_rad2_cv_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  double __pyx_v_x4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_pro_rad2_cv_pywrap (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,&__pyx_n_s_x4,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad2_cv_pywrap", 1, 5, 5, 1); __PYX_ERR(1, 3118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad2_cv_pywrap", 1, 5, 5, 2); __PYX_ERR(1, 3118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad2_cv_pywrap", 1, 5, 5, 3); __PYX_ERR(1, 3118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x4)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_pro_rad2_cv_pywrap", 1, 5, 5, 4); __PYX_ERR(1, 3118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_pro_rad2_cv_pywrap") < 0)) __PYX_ERR(1, 3118, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3118, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3118, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3118, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3118, __pyx_L3_error)
    __pyx_v_x4 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_x4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3118, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_pro_rad2_cv_pywrap", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3118, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad2_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_390_pro_rad2_cv_pywrap(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_390_pro_rad2_cv_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, double __pyx_v_x4) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_pro_rad2_cv_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3121
 *     cdef double y0
 *     cdef double y1
 *     pro_rad2_cv(x0, x1, x2, x3, x4, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_f_5scipy_7special_14cython_special_pro_rad2_cv(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, __pyx_v_x4, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3122
 *     cdef double y1
 *     pro_rad2_cv(x0, x1, x2, x3, x4, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double pseudo_huber(double x0, double x1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3118
 *     _func_prolate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._pro_rad2_cv_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3124
 *     return y0, y1
 * 
 * cpdef double pseudo_huber(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pseudo_huber"""
 *     return _func_pseudo_huber(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_393pseudo_huber(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_pseudo_huber(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3126
 * cpdef double pseudo_huber(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.pseudo_huber"""
 *     return _func_pseudo_huber(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t psi(Dd_number_t x0) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_16_convex_analysis_pseudo_huber(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3124
 *     return y0, y1
 * 
 * cpdef double pseudo_huber(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pseudo_huber"""
 *     return _func_pseudo_huber(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_393pseudo_huber(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_392pseudo_huber[] = "See the documentation for scipy.special.pseudo_huber";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_393pseudo_huber(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pseudo_huber (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("pseudo_huber", 1, 2, 2, 1); __PYX_ERR(1, 3124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pseudo_huber") < 0)) __PYX_ERR(1, 3124, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3124, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3124, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pseudo_huber", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3124, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.pseudo_huber", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_392pseudo_huber(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_392pseudo_huber(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pseudo_huber", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_pseudo_huber(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.pseudo_huber", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3128
 *     return _func_pseudo_huber(x0, x1)
 * 
 * cpdef Dd_number_t psi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.psi"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_395psi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_394psi[] = "See the documentation for scipy.special.psi";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_395psi = {"psi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_395psi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_394psi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_395psi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3128, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3128, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3128, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3128, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3128, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_394psi(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_394psi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("psi", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3128, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3128, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3128, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3128, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3128, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3128, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3128, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3128, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3128, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3128, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3128, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3128, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3128, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3128, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3128, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3128, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3128, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3128, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3128, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3128, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_881__pyx_fuse_0psi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_395psi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_psi(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3131
 *     """See the documentation for scipy.special.psi"""
 *     if Dd_number_t is double_complex:
 *         return _func_cdigamma(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_digamma(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_8_digamma_cdigamma(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3128
 *     return _func_pseudo_huber(x0, x1)
 * 
 * cpdef Dd_number_t psi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.psi"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_881__pyx_fuse_0psi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_881__pyx_fuse_0psi = {"__pyx_fuse_0psi", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_881__pyx_fuse_0psi, METH_O, __pyx_doc_5scipy_7special_14cython_special_394psi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_881__pyx_fuse_0psi(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0psi (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3128, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0psi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_880__pyx_fuse_0psi(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_880__pyx_fuse_0psi(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0psi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_psi(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0psi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_883__pyx_fuse_1psi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_395psi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_psi(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3133
 *         return _func_cdigamma(x0)
 *     elif Dd_number_t is double:
 *         return _func_digamma(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_f_5scipy_7special_8_digamma_digamma(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3128
 *     return _func_pseudo_huber(x0, x1)
 * 
 * cpdef Dd_number_t psi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.psi"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_883__pyx_fuse_1psi(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_883__pyx_fuse_1psi = {"__pyx_fuse_1psi", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_883__pyx_fuse_1psi, METH_O, __pyx_doc_5scipy_7special_14cython_special_394psi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_883__pyx_fuse_1psi(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1psi (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3128, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1psi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_882__pyx_fuse_1psi(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_882__pyx_fuse_1psi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1psi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_psi(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1psi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3140
 *             return NPY_NAN
 * 
 * cpdef double radian(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.radian"""
 *     return _func_radian(x0, x1, x2)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_397radian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_radian(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3142
 * cpdef double radian(double x0, double x1, double x2) nogil:
 *     """See the documentation for scipy.special.radian"""
 *     return _func_radian(x0, x1, x2)             # <<<<<<<<<<<<<<
 * 
 * cpdef double rel_entr(double x0, double x1) nogil:
 */
  __pyx_r = radian(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3140
 *             return NPY_NAN
 * 
 * cpdef double radian(double x0, double x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.radian"""
 *     return _func_radian(x0, x1, x2)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_397radian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_396radian[] = "See the documentation for scipy.special.radian";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_397radian(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("radian (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("radian", 1, 3, 3, 1); __PYX_ERR(1, 3140, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("radian", 1, 3, 3, 2); __PYX_ERR(1, 3140, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "radian") < 0)) __PYX_ERR(1, 3140, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3140, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3140, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3140, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("radian", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3140, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.radian", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_396radian(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_396radian(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("radian", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_radian(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.radian", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3144
 *     return _func_radian(x0, x1, x2)
 * 
 * cpdef double rel_entr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.rel_entr"""
 *     return _func_rel_entr(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_399rel_entr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_rel_entr(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3146
 * cpdef double rel_entr(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.rel_entr"""
 *     return _func_rel_entr(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t rgamma(Dd_number_t x0) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_16_convex_analysis_rel_entr(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3144
 *     return _func_radian(x0, x1, x2)
 * 
 * cpdef double rel_entr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.rel_entr"""
 *     return _func_rel_entr(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_399rel_entr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_398rel_entr[] = "See the documentation for scipy.special.rel_entr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_399rel_entr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rel_entr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("rel_entr", 1, 2, 2, 1); __PYX_ERR(1, 3144, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rel_entr") < 0)) __PYX_ERR(1, 3144, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3144, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3144, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rel_entr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3144, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.rel_entr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_398rel_entr(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_398rel_entr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rel_entr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_rel_entr(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3144, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.rel_entr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3148
 *     return _func_rel_entr(x0, x1)
 * 
 * cpdef Dd_number_t rgamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.rgamma"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_401rgamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_400rgamma[] = "See the documentation for scipy.special.rgamma";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_401rgamma = {"rgamma", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_401rgamma, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_400rgamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_401rgamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3148, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3148, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3148, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_400rgamma(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_400rgamma(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rgamma", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3148, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3148, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3148, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3148, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3148, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3148, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3148, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3148, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3148, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3148, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3148, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3148, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3148, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3148, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3148, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3148, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3148, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3148, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3148, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3148, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_887__pyx_fuse_0rgamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_401rgamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_rgamma(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3151
 *     """See the documentation for scipy.special.rgamma"""
 *     if Dd_number_t is double_complex:
 *         return _func_crgamma(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_rgamma(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_9_loggamma_crgamma(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3148
 *     return _func_rel_entr(x0, x1)
 * 
 * cpdef Dd_number_t rgamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.rgamma"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_887__pyx_fuse_0rgamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_887__pyx_fuse_0rgamma = {"__pyx_fuse_0rgamma", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_887__pyx_fuse_0rgamma, METH_O, __pyx_doc_5scipy_7special_14cython_special_400rgamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_887__pyx_fuse_0rgamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0rgamma (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3148, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0rgamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_886__pyx_fuse_0rgamma(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_886__pyx_fuse_0rgamma(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0rgamma", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_rgamma(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0rgamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_889__pyx_fuse_1rgamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_401rgamma(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_rgamma(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3153
 *         return _func_crgamma(x0)
 *     elif Dd_number_t is double:
 *         return _func_rgamma(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = rgamma(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3148
 *     return _func_rel_entr(x0, x1)
 * 
 * cpdef Dd_number_t rgamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.rgamma"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_889__pyx_fuse_1rgamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_889__pyx_fuse_1rgamma = {"__pyx_fuse_1rgamma", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_889__pyx_fuse_1rgamma, METH_O, __pyx_doc_5scipy_7special_14cython_special_400rgamma};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_889__pyx_fuse_1rgamma(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1rgamma (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3148, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1rgamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_888__pyx_fuse_1rgamma(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_888__pyx_fuse_1rgamma(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1rgamma", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_rgamma(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1rgamma", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3160
 *             return NPY_NAN
 * 
 * cpdef double round(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.round"""
 *     return _func_round(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_403round(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_round(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3162
 * cpdef double round(double x0) nogil:
 *     """See the documentation for scipy.special.round"""
 *     return _func_round(x0)             # <<<<<<<<<<<<<<
 * 
 * cdef void shichi(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:
 */
  __pyx_r = round(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3160
 *             return NPY_NAN
 * 
 * cpdef double round(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.round"""
 *     return _func_round(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_403round(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_402round[] = "See the documentation for scipy.special.round";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_403round(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("round (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3160, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.round", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_402round(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_402round(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("round", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_round(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.round", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3164
 *     return _func_round(x0)
 * 
 * cdef void shichi(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.shichi"""
 *     if Dd_number_t is double_complex:
 */

static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_shichi(__pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3167
 *     """See the documentation for scipy.special.shichi"""
 *     if Dd_number_t is double_complex:
 *         _func_cshichi(x0, y0, y1)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         _func_shichi(x0, y0, y1)
 */
  (void)(__pyx_f_5scipy_7special_5_sici_cshichi(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3164
 *     return _func_round(x0)
 * 
 * cdef void shichi(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.shichi"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
}

static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_shichi(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3169
 *         _func_cshichi(x0, y0, y1)
 *     elif Dd_number_t is double:
 *         _func_shichi(x0, y0, y1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  (void)(shichi(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3164
 *     return _func_round(x0)
 * 
 * cdef void shichi(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.shichi"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3178
 *             y1[0] = NPY_NAN
 * 
 * def _shichi_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_405_shichi_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_405_shichi_pywrap = {"_shichi_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_405_shichi_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_405_shichi_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3178, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3178, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3178, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3178, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3178, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_404_shichi_pywrap(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_404_shichi_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_shichi_pywrap", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3178, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3178, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3178, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3178, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3178, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3178, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3178, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3178, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3178, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3178, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3178, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3178, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3178, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3178, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3178, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3178, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3178, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3178, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3178, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3178, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_893_shichi_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_893_shichi_pywrap = {"__pyx_fuse_0_shichi_pywrap", (PyCFunction)__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_893_shichi_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_893_shichi_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_shichi_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3178, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._shichi_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_892_shichi_pywrap(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_892_shichi_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_shichi_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3181
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 *     shichi(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_shichi(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3182
 *     cdef Dd_number_t y1
 *     shichi(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void sici(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3178
 *             y1[0] = NPY_NAN
 * 
 * def _shichi_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._shichi_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_895_shichi_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_895_shichi_pywrap = {"__pyx_fuse_1_shichi_pywrap", (PyCFunction)__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_895_shichi_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_895_shichi_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_shichi_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3178, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._shichi_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_894_shichi_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_894_shichi_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_shichi_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3181
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 *     shichi(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_shichi(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3182
 *     cdef Dd_number_t y1
 *     shichi(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cdef void sici(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3178
 *             y1[0] = NPY_NAN
 * 
 * def _shichi_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._shichi_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3184
 *     return y0, y1
 * 
 * cdef void sici(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sici"""
 *     if Dd_number_t is double_complex:
 */

static void __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sici(__pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex *__pyx_v_y0, __pyx_t_double_complex *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3187
 *     """See the documentation for scipy.special.sici"""
 *     if Dd_number_t is double_complex:
 *         _func_csici(x0, y0, y1)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         _func_sici(x0, y0, y1)
 */
  (void)(__pyx_f_5scipy_7special_5_sici_csici(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3184
 *     return y0, y1
 * 
 * cdef void sici(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sici"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
}

static void __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sici(double __pyx_v_x0, double *__pyx_v_y0, double *__pyx_v_y1) {

  /* "scipy/special/cython_special.pyx":3189
 *         _func_csici(x0, y0, y1)
 *     elif Dd_number_t is double:
 *         _func_sici(x0, y0, y1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  (void)(sici(__pyx_v_x0, __pyx_v_y0, __pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3184
 *     return y0, y1
 * 
 * cdef void sici(Dd_number_t x0, Dd_number_t *y0, Dd_number_t *y1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sici"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
}

/* "scipy/special/cython_special.pyx":3198
 *             y1[0] = NPY_NAN
 * 
 * def _sici_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_407_sici_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_407_sici_pywrap = {"_sici_pywrap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_407_sici_pywrap, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_407_sici_pywrap(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3198, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3198, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3198, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3198, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3198, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_406_sici_pywrap(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_406_sici_pywrap(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_sici_pywrap", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3198, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3198, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3198, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3198, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3198, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3198, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3198, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3198, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3198, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3198, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3198, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3198, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3198, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3198, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3198, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3198, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3198, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3198, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3198, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3198, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3198, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_899_sici_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_899_sici_pywrap = {"__pyx_fuse_0_sici_pywrap", (PyCFunction)__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_899_sici_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_0__pyx_pw_5scipy_7special_14cython_special_899_sici_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_sici_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3198, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._sici_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_898_sici_pywrap(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_898_sici_pywrap(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0_sici_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3201
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 *     sici(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sici(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3202
 *     cdef Dd_number_t y1
 *     sici(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double sindg(double x0) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyComplex_FromComplex(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3198
 *             y1[0] = NPY_NAN
 * 
 * def _sici_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._sici_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_901_sici_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_901_sici_pywrap = {"__pyx_fuse_1_sici_pywrap", (PyCFunction)__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_901_sici_pywrap, METH_O, 0};
static PyObject *__pyx_fuse_1__pyx_pw_5scipy_7special_14cython_special_901_sici_pywrap(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_sici_pywrap (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3198, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._sici_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_900_sici_pywrap(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_900_sici_pywrap(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  double __pyx_v_y0;
  double __pyx_v_y1;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1_sici_pywrap", 0);

  /* "scipy/special/cython_special.pyx":3201
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 *     sici(x0, &y0, &y1)             # <<<<<<<<<<<<<<
 *     return y0, y1
 * 
 */
  __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sici(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1));

  /* "scipy/special/cython_special.pyx":3202
 *     cdef Dd_number_t y1
 *     sici(x0, &y0, &y1)
 *     return y0, y1             # <<<<<<<<<<<<<<
 * 
 * cpdef double sindg(double x0) nogil:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_y0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_y1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3198
 *             y1[0] = NPY_NAN
 * 
 * def _sici_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("scipy.special.cython_special._sici_pywrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3204
 *     return y0, y1
 * 
 * cpdef double sindg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sindg"""
 *     return _func_sindg(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_409sindg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_sindg(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3206
 * cpdef double sindg(double x0) nogil:
 *     """See the documentation for scipy.special.sindg"""
 *     return _func_sindg(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double smirnov(dl_number_t x0, double x1) nogil:
 */
  __pyx_r = sindg(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3204
 *     return y0, y1
 * 
 * cpdef double sindg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sindg"""
 *     return _func_sindg(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_409sindg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_408sindg[] = "See the documentation for scipy.special.sindg";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_409sindg(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sindg (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3204, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.sindg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_408sindg(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_408sindg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sindg", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_sindg(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.sindg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3208
 *     return _func_sindg(x0)
 * 
 * cpdef double smirnov(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnov"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_411smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_410smirnov[] = "See the documentation for scipy.special.smirnov";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_411smirnov = {"smirnov", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_411smirnov, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_410smirnov};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_411smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3208, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3208, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3208, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3208, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3208, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_410smirnov(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_410smirnov(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("smirnov", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3208, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3208, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3208, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3208, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3208, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3208, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3208, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3208, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3208, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3208, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3208, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3208, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3208, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3208, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3208, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3208, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3208, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3208, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3208, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3208, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_905__pyx_fuse_0smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_411smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnov(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3211
 *     """See the documentation for scipy.special.smirnov"""
 *     if dl_number_t is double:
 *         return _func_smirnov_unsafe(x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_smirnov(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_smirnov_unsafe(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3208
 *     return _func_sindg(x0)
 * 
 * cpdef double smirnov(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnov"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_905__pyx_fuse_0smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_905__pyx_fuse_0smirnov = {"__pyx_fuse_0smirnov", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_905__pyx_fuse_0smirnov, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_410smirnov};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_905__pyx_fuse_0smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0smirnov (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0smirnov", 1, 2, 2, 1); __PYX_ERR(1, 3208, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0smirnov") < 0)) __PYX_ERR(1, 3208, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3208, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3208, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0smirnov", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3208, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0smirnov", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_904__pyx_fuse_0smirnov(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_904__pyx_fuse_0smirnov(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0smirnov", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnov(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0smirnov", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_907__pyx_fuse_1smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_411smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnov(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3213
 *         return _func_smirnov_unsafe(x0, x1)
 *     elif dl_number_t is long:
 *         return _func_smirnov(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = smirnov(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3208
 *     return _func_sindg(x0)
 * 
 * cpdef double smirnov(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnov"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_907__pyx_fuse_1smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_907__pyx_fuse_1smirnov = {"__pyx_fuse_1smirnov", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_907__pyx_fuse_1smirnov, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_410smirnov};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_907__pyx_fuse_1smirnov(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1smirnov (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1smirnov", 1, 2, 2, 1); __PYX_ERR(1, 3208, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1smirnov") < 0)) __PYX_ERR(1, 3208, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 3208, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3208, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1smirnov", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3208, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1smirnov", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_906__pyx_fuse_1smirnov(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_906__pyx_fuse_1smirnov(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1smirnov", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnov(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1smirnov", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3217
 *         return NPY_NAN
 * 
 * cpdef double smirnovi(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnovi"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_413smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_412smirnovi[] = "See the documentation for scipy.special.smirnovi";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_413smirnovi = {"smirnovi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_413smirnovi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_412smirnovi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_413smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3217, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3217, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3217, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3217, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3217, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_412smirnovi(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_412smirnovi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("smirnovi", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3217, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3217, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3217, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3217, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3217, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3217, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3217, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3217, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3217, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3217, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3217, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3217, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3217, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3217, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3217, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3217, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3217, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3217, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3217, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3217, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3217, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_911__pyx_fuse_0smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_413smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnovi(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3220
 *     """See the documentation for scipy.special.smirnovi"""
 *     if dl_number_t is double:
 *         return _func_smirnovi_unsafe(x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_smirnovi(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_smirnovi_unsafe(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3217
 *         return NPY_NAN
 * 
 * cpdef double smirnovi(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnovi"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_911__pyx_fuse_0smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_911__pyx_fuse_0smirnovi = {"__pyx_fuse_0smirnovi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_911__pyx_fuse_0smirnovi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_412smirnovi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_911__pyx_fuse_0smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0smirnovi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0smirnovi", 1, 2, 2, 1); __PYX_ERR(1, 3217, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0smirnovi") < 0)) __PYX_ERR(1, 3217, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3217, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3217, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0smirnovi", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3217, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0smirnovi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_910__pyx_fuse_0smirnovi(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_910__pyx_fuse_0smirnovi(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0smirnovi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnovi(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0smirnovi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_913__pyx_fuse_1smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_413smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnovi(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3222
 *         return _func_smirnovi_unsafe(x0, x1)
 *     elif dl_number_t is long:
 *         return _func_smirnovi(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = smirnovi(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3217
 *         return NPY_NAN
 * 
 * cpdef double smirnovi(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnovi"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_913__pyx_fuse_1smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_913__pyx_fuse_1smirnovi = {"__pyx_fuse_1smirnovi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_913__pyx_fuse_1smirnovi, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_412smirnovi};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_913__pyx_fuse_1smirnovi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1smirnovi (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1smirnovi", 1, 2, 2, 1); __PYX_ERR(1, 3217, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1smirnovi") < 0)) __PYX_ERR(1, 3217, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 3217, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3217, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1smirnovi", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3217, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1smirnovi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_912__pyx_fuse_1smirnovi(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_912__pyx_fuse_1smirnovi(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1smirnovi", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnovi(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1smirnovi", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3226
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t spence(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spence"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_415spence(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_414spence[] = "See the documentation for scipy.special.spence";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_415spence = {"spence", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_415spence, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_414spence};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_415spence(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3226, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3226, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3226, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3226, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3226, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_414spence(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_414spence(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("spence", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3226, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3226, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3226, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3226, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3226, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3226, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3226, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3226, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3226, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3226, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3226, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3226, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3226, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3226, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3226, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3226, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3226, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3226, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3226, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3226, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_917__pyx_fuse_0spence(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_415spence(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spence(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3229
 *     """See the documentation for scipy.special.spence"""
 *     if Dd_number_t is double_complex:
 *         return _func_cspence(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_spence(x0)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_spence_cspence(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3226
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t spence(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spence"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_917__pyx_fuse_0spence(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_917__pyx_fuse_0spence = {"__pyx_fuse_0spence", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_917__pyx_fuse_0spence, METH_O, __pyx_doc_5scipy_7special_14cython_special_414spence};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_917__pyx_fuse_0spence(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0spence (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3226, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spence", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_916__pyx_fuse_0spence(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_916__pyx_fuse_0spence(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0spence", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spence(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0spence", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_919__pyx_fuse_1spence(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_415spence(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spence(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3231
 *         return _func_cspence(x0)
 *     elif Dd_number_t is double:
 *         return _func_spence(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = spence(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3226
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t spence(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spence"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_919__pyx_fuse_1spence(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_919__pyx_fuse_1spence = {"__pyx_fuse_1spence", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_919__pyx_fuse_1spence, METH_O, __pyx_doc_5scipy_7special_14cython_special_414spence};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_919__pyx_fuse_1spence(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1spence (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3226, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spence", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_918__pyx_fuse_1spence(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_918__pyx_fuse_1spence(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1spence", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spence(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1spence", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3238
 *             return NPY_NAN
 * 
 * cpdef double complex sph_harm(dl_number_t x0, dl_number_t x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sph_harm"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_417sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_416sph_harm[] = "See the documentation for scipy.special.sph_harm";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_417sph_harm = {"sph_harm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_417sph_harm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_416sph_harm};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_417sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3238, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3238, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_416sph_harm(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_416sph_harm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sph_harm", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3238, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3238, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3238, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3238, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3238, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3238, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3238, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3238, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3238, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3238, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3238, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3238, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3238, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3238, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3238, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3238, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3238, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3238, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3238, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3238, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3238, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_923__pyx_fuse_0sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_417sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sph_harm(double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3241
 *     """See the documentation for scipy.special.sph_harm"""
 *     if dl_number_t is double:
 *         return _func_sph_harmonic_unsafe(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_sph_harmonic(x0, x1, x2, x3)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_sph_harmonic_unsafe(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3238
 *             return NPY_NAN
 * 
 * cpdef double complex sph_harm(dl_number_t x0, dl_number_t x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sph_harm"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_923__pyx_fuse_0sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_923__pyx_fuse_0sph_harm = {"__pyx_fuse_0sph_harm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_923__pyx_fuse_0sph_harm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_416sph_harm};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_923__pyx_fuse_0sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0sph_harm (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0sph_harm", 1, 4, 4, 1); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0sph_harm", 1, 4, 4, 2); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0sph_harm", 1, 4, 4, 3); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0sph_harm") < 0)) __PYX_ERR(1, 3238, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0sph_harm", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3238, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0sph_harm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_922__pyx_fuse_0sph_harm(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_922__pyx_fuse_0sph_harm(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0sph_harm", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sph_harm(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0sph_harm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_925__pyx_fuse_1sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_417sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sph_harm(long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3243
 *         return _func_sph_harmonic_unsafe(x0, x1, x2, x3)
 *     elif dl_number_t is long:
 *         return _func_sph_harmonic(x0, x1, x2, x3)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = __pyx_f_5scipy_7special_8sph_harm_sph_harmonic(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3238
 *             return NPY_NAN
 * 
 * cpdef double complex sph_harm(dl_number_t x0, dl_number_t x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sph_harm"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_925__pyx_fuse_1sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_925__pyx_fuse_1sph_harm = {"__pyx_fuse_1sph_harm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_925__pyx_fuse_1sph_harm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_416sph_harm};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_925__pyx_fuse_1sph_harm(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  long __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_v_x3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1sph_harm (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,&__pyx_n_s_x2,&__pyx_n_s_x3,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1sph_harm", 1, 4, 4, 1); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1sph_harm", 1, 4, 4, 2); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x3)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1sph_harm", 1, 4, 4, 3); __PYX_ERR(1, 3238, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1sph_harm") < 0)) __PYX_ERR(1, 3238, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v_x1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
    __pyx_v_x2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
    __pyx_v_x3 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_x3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3238, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1sph_harm", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3238, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1sph_harm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_924__pyx_fuse_1sph_harm(__pyx_self, __pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_924__pyx_fuse_1sph_harm(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, long __pyx_v_x1, double __pyx_v_x2, double __pyx_v_x3) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1sph_harm", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sph_harm(__pyx_v_x0, __pyx_v_x1, __pyx_v_x2, __pyx_v_x3, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1sph_harm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3247
 *         return NPY_NAN
 * 
 * cpdef double stdtr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.stdtr"""
 *     return _func_cdft1_wrap(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_419stdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_stdtr(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3249
 * cpdef double stdtr(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.stdtr"""
 *     return _func_cdft1_wrap(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double stdtridf(double x0, double x1) nogil:
 */
  __pyx_r = cdft1_wrap(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3247
 *         return NPY_NAN
 * 
 * cpdef double stdtr(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.stdtr"""
 *     return _func_cdft1_wrap(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_419stdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_418stdtr[] = "See the documentation for scipy.special.stdtr";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_419stdtr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stdtr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stdtr", 1, 2, 2, 1); __PYX_ERR(1, 3247, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stdtr") < 0)) __PYX_ERR(1, 3247, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3247, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3247, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stdtr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3247, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.stdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_418stdtr(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_418stdtr(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stdtr", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_stdtr(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.stdtr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3251
 *     return _func_cdft1_wrap(x0, x1)
 * 
 * cpdef double stdtridf(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.stdtridf"""
 *     return _func_cdft3_wrap(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_421stdtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_stdtridf(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3253
 * cpdef double stdtridf(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.stdtridf"""
 *     return _func_cdft3_wrap(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double stdtrit(double x0, double x1) nogil:
 */
  __pyx_r = cdft3_wrap(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3251
 *     return _func_cdft1_wrap(x0, x1)
 * 
 * cpdef double stdtridf(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.stdtridf"""
 *     return _func_cdft3_wrap(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_421stdtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_420stdtridf[] = "See the documentation for scipy.special.stdtridf";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_421stdtridf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stdtridf (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stdtridf", 1, 2, 2, 1); __PYX_ERR(1, 3251, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stdtridf") < 0)) __PYX_ERR(1, 3251, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3251, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3251, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stdtridf", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3251, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.stdtridf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_420stdtridf(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_420stdtridf(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stdtridf", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_stdtridf(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.stdtridf", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3255
 *     return _func_cdft3_wrap(x0, x1)
 * 
 * cpdef double stdtrit(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.stdtrit"""
 *     return _func_cdft2_wrap(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_423stdtrit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_stdtrit(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3257
 * cpdef double stdtrit(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.stdtrit"""
 *     return _func_cdft2_wrap(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double struve(double x0, double x1) nogil:
 */
  __pyx_r = cdft2_wrap(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3255
 *     return _func_cdft3_wrap(x0, x1)
 * 
 * cpdef double stdtrit(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.stdtrit"""
 *     return _func_cdft2_wrap(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_423stdtrit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_422stdtrit[] = "See the documentation for scipy.special.stdtrit";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_423stdtrit(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("stdtrit (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("stdtrit", 1, 2, 2, 1); __PYX_ERR(1, 3255, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stdtrit") < 0)) __PYX_ERR(1, 3255, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3255, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3255, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("stdtrit", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3255, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.stdtrit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_422stdtrit(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_422stdtrit(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("stdtrit", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_stdtrit(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.stdtrit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3259
 *     return _func_cdft2_wrap(x0, x1)
 * 
 * cpdef double struve(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.struve"""
 *     return _func_struve_h(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_425struve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_struve(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3261
 * cpdef double struve(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.struve"""
 *     return _func_struve_h(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double tandg(double x0) nogil:
 */
  __pyx_r = struve_h(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3259
 *     return _func_cdft2_wrap(x0, x1)
 * 
 * cpdef double struve(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.struve"""
 *     return _func_struve_h(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_425struve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_424struve[] = "See the documentation for scipy.special.struve";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_425struve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("struve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("struve", 1, 2, 2, 1); __PYX_ERR(1, 3259, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "struve") < 0)) __PYX_ERR(1, 3259, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3259, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3259, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("struve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3259, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.struve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_424struve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_424struve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("struve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_struve(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.struve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3263
 *     return _func_struve_h(x0, x1)
 * 
 * cpdef double tandg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.tandg"""
 *     return _func_tandg(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_427tandg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_tandg(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3265
 * cpdef double tandg(double x0) nogil:
 *     """See the documentation for scipy.special.tandg"""
 *     return _func_tandg(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double tklmbda(double x0, double x1) nogil:
 */
  __pyx_r = tandg(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3263
 *     return _func_struve_h(x0, x1)
 * 
 * cpdef double tandg(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.tandg"""
 *     return _func_tandg(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_427tandg(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_426tandg[] = "See the documentation for scipy.special.tandg";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_427tandg(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tandg (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3263, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.tandg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_426tandg(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_426tandg(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tandg", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_tandg(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.tandg", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3267
 *     return _func_tandg(x0)
 * 
 * cpdef double tklmbda(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.tklmbda"""
 *     return _func_tukeylambdacdf(x0, x1)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_429tklmbda(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_tklmbda(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3269
 * cpdef double tklmbda(double x0, double x1) nogil:
 *     """See the documentation for scipy.special.tklmbda"""
 *     return _func_tukeylambdacdf(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * cpdef double complex wofz(double complex x0) nogil:
 */
  __pyx_r = tukeylambdacdf(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3267
 *     return _func_tandg(x0)
 * 
 * cpdef double tklmbda(double x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.tklmbda"""
 *     return _func_tukeylambdacdf(x0, x1)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_429tklmbda(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_428tklmbda[] = "See the documentation for scipy.special.tklmbda";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_429tklmbda(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tklmbda (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("tklmbda", 1, 2, 2, 1); __PYX_ERR(1, 3267, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tklmbda") < 0)) __PYX_ERR(1, 3267, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3267, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3267, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tklmbda", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3267, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.tklmbda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_428tklmbda(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_428tklmbda(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tklmbda", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_tklmbda(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.tklmbda", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3271
 *     return _func_tukeylambdacdf(x0, x1)
 * 
 * cpdef double complex wofz(double complex x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.wofz"""
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_431wofz(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static __pyx_t_double_complex __pyx_f_5scipy_7special_14cython_special_wofz(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3273
 * cpdef double complex wofz(double complex x0) nogil:
 *     """See the documentation for scipy.special.wofz"""
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dd_number_t wrightomega(Dd_number_t x0) nogil:
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_faddeeva_w)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3271
 *     return _func_tukeylambdacdf(x0, x1)
 * 
 * cpdef double complex wofz(double complex x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.wofz"""
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_431wofz(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_430wofz[] = "See the documentation for scipy.special.wofz";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_431wofz(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wofz (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3271, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.wofz", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_430wofz(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_430wofz(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wofz", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_5scipy_7special_14cython_special_wofz(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.wofz", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3275
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)
 * 
 * cpdef Dd_number_t wrightomega(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.wrightomega"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_433wrightomega(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_432wrightomega[] = "See the documentation for scipy.special.wrightomega";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_433wrightomega = {"wrightomega", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_433wrightomega, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_432wrightomega};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_433wrightomega(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3275, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3275, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3275, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3275, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3275, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_432wrightomega(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_432wrightomega(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrightomega", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3275, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3275, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3275, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3275, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3275, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3275, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3275, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1);
    __Pyx_INCREF(__pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_kp_s__17);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_kp_s__17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3275, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3275, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3275, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3275, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3275, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3275, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3275, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3275, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3275, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3275, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3275, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3275, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3275, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_929__pyx_fuse_0wrightomega(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_433wrightomega(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_wrightomega(__pyx_t_double_complex __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3278
 *     """See the documentation for scipy.special.wrightomega"""
 *     if Dd_number_t is double_complex:
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_wrightomega)(x0)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_wrightomega_real)(x0)
 */
  __pyx_r = ((__pyx_t_double_complex (*)(__pyx_t_double_complex))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_wrightomega)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3275
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)
 * 
 * cpdef Dd_number_t wrightomega(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.wrightomega"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_929__pyx_fuse_0wrightomega(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_929__pyx_fuse_0wrightomega = {"__pyx_fuse_0wrightomega", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_929__pyx_fuse_0wrightomega, METH_O, __pyx_doc_5scipy_7special_14cython_special_432wrightomega};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_929__pyx_fuse_0wrightomega(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0wrightomega (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(__pyx_arg_x0); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3275, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0wrightomega", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_928__pyx_fuse_0wrightomega(__pyx_self, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_928__pyx_fuse_0wrightomega(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0wrightomega", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_wrightomega(__pyx_v_x0, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0wrightomega", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_931__pyx_fuse_1wrightomega(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_433wrightomega(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_wrightomega(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3280
 *         return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_wrightomega)(x0)
 *     elif Dd_number_t is double:
 *         return (<double(*)(double) nogil>scipy.special._ufuncs_cxx._export_wrightomega_real)(x0)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = ((double (*)(double))__pyx_v_5scipy_7special_11_ufuncs_cxx__export_wrightomega_real)(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3275
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)
 * 
 * cpdef Dd_number_t wrightomega(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.wrightomega"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_931__pyx_fuse_1wrightomega(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_931__pyx_fuse_1wrightomega = {"__pyx_fuse_1wrightomega", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_931__pyx_fuse_1wrightomega, METH_O, __pyx_doc_5scipy_7special_14cython_special_432wrightomega};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_931__pyx_fuse_1wrightomega(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1wrightomega (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3275, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1wrightomega", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_930__pyx_fuse_1wrightomega(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_930__pyx_fuse_1wrightomega(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1wrightomega", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_wrightomega(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1wrightomega", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3287
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlog1py(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlog1py"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_435xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_434xlog1py[] = "See the documentation for scipy.special.xlog1py";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_435xlog1py = {"xlog1py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_435xlog1py, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_434xlog1py};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_435xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3287, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3287, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3287, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_434xlog1py(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_434xlog1py(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("xlog1py", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3287, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3287, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3287, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3287, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3287, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3287, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3287, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3287, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3287, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3287, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3287, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3287, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3287, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3287, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3287, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3287, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3287, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3287, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3287, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3287, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_935__pyx_fuse_0xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_435xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlog1py(__pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3292
 *         return _func_xlog1py[double](x0, x1)
 *     elif Dd_number_t is double_complex:
 *         return _func_xlog1py[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlog1py(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3287
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlog1py(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlog1py"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_935__pyx_fuse_0xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_935__pyx_fuse_0xlog1py = {"__pyx_fuse_0xlog1py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_935__pyx_fuse_0xlog1py, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_434xlog1py};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_935__pyx_fuse_0xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_double_complex __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0xlog1py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0xlog1py", 1, 2, 2, 1); __PYX_ERR(1, 3287, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0xlog1py") < 0)) __PYX_ERR(1, 3287, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3287, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3287, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0xlog1py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3287, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0xlog1py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_934__pyx_fuse_0xlog1py(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_934__pyx_fuse_0xlog1py(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0xlog1py", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlog1py(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0xlog1py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_937__pyx_fuse_1xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_435xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlog1py(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3290
 *     """See the documentation for scipy.special.xlog1py"""
 *     if Dd_number_t is double:
 *         return _func_xlog1py[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return _func_xlog1py[double_complex](x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlog1py(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3287
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlog1py(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlog1py"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_937__pyx_fuse_1xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_937__pyx_fuse_1xlog1py = {"__pyx_fuse_1xlog1py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_937__pyx_fuse_1xlog1py, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_434xlog1py};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_937__pyx_fuse_1xlog1py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1xlog1py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1xlog1py", 1, 2, 2, 1); __PYX_ERR(1, 3287, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1xlog1py") < 0)) __PYX_ERR(1, 3287, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3287, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3287, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1xlog1py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3287, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1xlog1py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_936__pyx_fuse_1xlog1py(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_936__pyx_fuse_1xlog1py(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1xlog1py", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlog1py(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1xlog1py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3299
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlogy(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlogy"""
 *     if Dd_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_437xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_436xlogy[] = "See the documentation for scipy.special.xlogy";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_437xlogy = {"xlogy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_437xlogy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_436xlogy};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_437xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3299, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3299, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3299, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3299, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3299, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_436xlogy(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_436xlogy(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("xlogy", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3299, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3299, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3299, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3299, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3299, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3299, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3299, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3299, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3299, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3299, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3299, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3299, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3299, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3299, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3299, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3299, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3299, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3299, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3299, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3299, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_941__pyx_fuse_0xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_437xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlogy(__pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3304
 *         return _func_xlogy[double](x0, x1)
 *     elif Dd_number_t is double_complex:
 *         return _func_xlogy[double_complex](x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlogy(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3299
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlogy(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlogy"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_941__pyx_fuse_0xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_941__pyx_fuse_0xlogy = {"__pyx_fuse_0xlogy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_941__pyx_fuse_0xlogy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_436xlogy};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_941__pyx_fuse_0xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __pyx_t_double_complex __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0xlogy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0xlogy", 1, 2, 2, 1); __PYX_ERR(1, 3299, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0xlogy") < 0)) __PYX_ERR(1, 3299, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3299, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3299, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0xlogy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3299, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0xlogy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_940__pyx_fuse_0xlogy(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_940__pyx_fuse_0xlogy(CYTHON_UNUSED PyObject *__pyx_self, __pyx_t_double_complex __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0xlogy", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlogy(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0xlogy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_943__pyx_fuse_1xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_437xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlogy(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3302
 *     """See the documentation for scipy.special.xlogy"""
 *     if Dd_number_t is double:
 *         return _func_xlogy[double](x0, x1)             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double_complex:
 *         return _func_xlogy[double_complex](x0, x1)
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlogy(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3299
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlogy(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlogy"""
 *     if Dd_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_943__pyx_fuse_1xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_943__pyx_fuse_1xlogy = {"__pyx_fuse_1xlogy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_943__pyx_fuse_1xlogy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_436xlogy};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_943__pyx_fuse_1xlogy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1xlogy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1xlogy", 1, 2, 2, 1); __PYX_ERR(1, 3299, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1xlogy") < 0)) __PYX_ERR(1, 3299, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3299, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3299, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1xlogy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3299, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1xlogy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_942__pyx_fuse_1xlogy(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_942__pyx_fuse_1xlogy(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1xlogy", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlogy(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1xlogy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3311
 *             return NPY_NAN
 * 
 * cpdef double y0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.y0"""
 *     return _func_y0(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_439y0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_y0(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3313
 * cpdef double y0(double x0) nogil:
 *     """See the documentation for scipy.special.y0"""
 *     return _func_y0(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double y1(double x0) nogil:
 */
  __pyx_r = y0(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3311
 *             return NPY_NAN
 * 
 * cpdef double y0(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.y0"""
 *     return _func_y0(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_439y0(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_438y0[] = "See the documentation for scipy.special.y0";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_439y0(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("y0 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3311, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.y0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_438y0(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_438y0(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("y0", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_y0(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.y0", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3315
 *     return _func_y0(x0)
 * 
 * cpdef double y1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.y1"""
 *     return _func_y1(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_441y1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_y1(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3317
 * cpdef double y1(double x0) nogil:
 *     """See the documentation for scipy.special.y1"""
 *     return _func_y1(x0)             # <<<<<<<<<<<<<<
 * 
 * cpdef double yn(dl_number_t x0, double x1) nogil:
 */
  __pyx_r = y1(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3315
 *     return _func_y0(x0)
 * 
 * cpdef double y1(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.y1"""
 *     return _func_y1(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_441y1(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_440y1[] = "See the documentation for scipy.special.y1";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_441y1(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("y1 (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3315, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.y1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_440y1(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_440y1(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("y1", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_y1(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.y1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3319
 *     return _func_y1(x0)
 * 
 * cpdef double yn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yn"""
 *     if dl_number_t is double:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_443yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_442yn[] = "See the documentation for scipy.special.yn";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_443yn = {"yn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_443yn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_442yn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_443yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3319, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3319, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3319, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3319, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3319, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_442yn(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_442yn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("yn", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3319, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3319, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3319, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3319, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x0, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3319, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3319, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3319, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3319, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3319, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_2 = PyInt_Check(__pyx_v_arg); 
    __pyx_t_4 = (__pyx_t_2 != 0);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyLong_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_4 != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L13_bool_binop_done:;
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_long, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3319, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3319, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3319, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3319, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3319, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3319, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L20;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L18_break;
        }
        __pyx_L20:;
      }
    }
    __pyx_L18_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3319, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3319, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3319, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3319, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3319, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_947__pyx_fuse_0yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_443yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yn(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3322
 *     """See the documentation for scipy.special.yn"""
 *     if dl_number_t is double:
 *         return _func_yn_unsafe(x0, x1)             # <<<<<<<<<<<<<<
 *     elif dl_number_t is long:
 *         return _func_yn(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_7_legacy_yn_unsafe(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3319
 *     return _func_y1(x0)
 * 
 * cpdef double yn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yn"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_947__pyx_fuse_0yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_947__pyx_fuse_0yn = {"__pyx_fuse_0yn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_947__pyx_fuse_0yn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_442yn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_947__pyx_fuse_0yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0yn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0yn", 1, 2, 2, 1); __PYX_ERR(1, 3319, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0yn") < 0)) __PYX_ERR(1, 3319, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3319, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3319, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0yn", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3319, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_946__pyx_fuse_0yn(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_946__pyx_fuse_0yn(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0yn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yn(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_949__pyx_fuse_1yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_443yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yn(long __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3324
 *         return _func_yn_unsafe(x0, x1)
 *     elif dl_number_t is long:
 *         return _func_yn(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         return NPY_NAN
 */
  __pyx_r = yn(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3319
 *     return _func_y1(x0)
 * 
 * cpdef double yn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yn"""
 *     if dl_number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_949__pyx_fuse_1yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_949__pyx_fuse_1yn = {"__pyx_fuse_1yn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_949__pyx_fuse_1yn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_442yn};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_949__pyx_fuse_1yn(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  long __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1yn (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1yn", 1, 2, 2, 1); __PYX_ERR(1, 3319, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1yn") < 0)) __PYX_ERR(1, 3319, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_x0 == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 3319, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3319, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1yn", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3319, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_948__pyx_fuse_1yn(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_948__pyx_fuse_1yn(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1yn", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yn(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1yn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3328
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t yv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yv"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_445yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_444yv[] = "See the documentation for scipy.special.yv";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_445yv = {"yv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_445yv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_444yv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_445yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3328, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3328, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3328, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3328, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3328, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_444yv(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_444yv(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("yv", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3328, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3328, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3328, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3328, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3328, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3328, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3328, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3328, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3328, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3328, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3328, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3328, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3328, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3328, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3328, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3328, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3328, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3328, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3328, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3328, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_953__pyx_fuse_0yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_445yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yv(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3331
 *     """See the documentation for scipy.special.yv"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesy_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_cbesy_wrap_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesy_wrap(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3328
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t yv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_953__pyx_fuse_0yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_953__pyx_fuse_0yv = {"__pyx_fuse_0yv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_953__pyx_fuse_0yv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_444yv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_953__pyx_fuse_0yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0yv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0yv", 1, 2, 2, 1); __PYX_ERR(1, 3328, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0yv") < 0)) __PYX_ERR(1, 3328, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3328, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3328, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0yv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3328, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0yv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_952__pyx_fuse_0yv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_952__pyx_fuse_0yv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0yv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yv(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0yv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_955__pyx_fuse_1yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_445yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yv(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3333
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesy_wrap(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_cbesy_wrap_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = cbesy_wrap_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3328
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t yv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yv"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_955__pyx_fuse_1yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_955__pyx_fuse_1yv = {"__pyx_fuse_1yv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_955__pyx_fuse_1yv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_444yv};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_955__pyx_fuse_1yv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1yv (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1yv", 1, 2, 2, 1); __PYX_ERR(1, 3328, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1yv") < 0)) __PYX_ERR(1, 3328, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3328, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3328, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1yv", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3328, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1yv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_954__pyx_fuse_1yv(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_954__pyx_fuse_1yv(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1yv", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yv(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1yv", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3340
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t yve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yve"""
 *     if Dd_number_t is double_complex:
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_447yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_446yve[] = "See the documentation for scipy.special.yve";
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_447yve = {"yve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_447yve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_446yve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_447yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(1, 3340, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(1, 3340, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(1, 3340, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(1, 3340, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3340, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_446yve(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_446yve(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  CYTHON_UNUSED PyTypeObject *__pyx_v_ndarray = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_v_itemsize;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  Py_ssize_t __pyx_t_14;
  Py_ssize_t __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("yve", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 3340, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3340, __pyx_L1_error)
  __pyx_t_2 = ((1 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3340, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3340, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_x1, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3340, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_x1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(1, 3340, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3340, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3340, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = PyComplex_Check(__pyx_v_arg); 
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3340, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    __pyx_t_3 = PyFloat_Check(__pyx_v_arg); 
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3340, __pyx_L1_error)
      goto __pyx_L10_break;
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(1, 3340, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(1, 3340, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_7, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_8);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_split); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_kp_s__3);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_13 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3340, __pyx_L1_error)
    __pyx_t_14 = __pyx_t_13;
    for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
      __pyx_v_i = __pyx_t_15;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3340, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(1, 3340, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L18;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L16_break;
        }
        __pyx_L18:;
      }
    }
    __pyx_L16_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(1, 3340, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3340, __pyx_L1_error)
  }
  __pyx_t_7 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 3340, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_7 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(1, 3340, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 3340, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 3340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_11;
    __pyx_t_11 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_959__pyx_fuse_0yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_447yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static __pyx_t_double_complex __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yve(double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  __pyx_t_double_complex __pyx_r;

  /* "scipy/special/cython_special.pyx":3343
 *     """See the documentation for scipy.special.yve"""
 *     if Dd_number_t is double_complex:
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesy_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))             # <<<<<<<<<<<<<<
 *     elif Dd_number_t is double:
 *         return _func_cbesy_wrap_e_real(x0, x1)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(cbesy_wrap_e(__pyx_v_x0, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x1)));
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3340
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t yve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yve"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_959__pyx_fuse_0yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_959__pyx_fuse_0yve = {"__pyx_fuse_0yve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_959__pyx_fuse_0yve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_446yve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_959__pyx_fuse_0yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0yve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0yve", 1, 2, 2, 1); __PYX_ERR(1, 3340, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0yve") < 0)) __PYX_ERR(1, 3340, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3340, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3340, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0yve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3340, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0yve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_958__pyx_fuse_0yve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_958__pyx_fuse_0yve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __pyx_t_double_complex __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_0yve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yve(__pyx_v_x0, __pyx_v_x1, 0);
  __pyx_t_2 = __pyx_PyComplex_FromComplex(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_0yve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pw_5scipy_7special_14cython_special_961__pyx_fuse_1yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_5scipy_7special_14cython_special_447yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static double __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yve(double __pyx_v_x0, double __pyx_v_x1, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3345
 *         return _complexstuff.double_complex_from_npy_cdouble(_func_cbesy_wrap_e(x0, _complexstuff.npy_cdouble_from_double_complex(x1)))
 *     elif Dd_number_t is double:
 *         return _func_cbesy_wrap_e_real(x0, x1)             # <<<<<<<<<<<<<<
 *     else:
 *         if Dd_number_t is double_complex:
 */
  __pyx_r = cbesy_wrap_e_real(__pyx_v_x0, __pyx_v_x1);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3340
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t yve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yve"""
 *     if Dd_number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_961__pyx_fuse_1yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_961__pyx_fuse_1yve = {"__pyx_fuse_1yve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_961__pyx_fuse_1yve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_446yve};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_961__pyx_fuse_1yve(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1yve (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1yve", 1, 2, 2, 1); __PYX_ERR(1, 3340, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1yve") < 0)) __PYX_ERR(1, 3340, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3340, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3340, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1yve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3340, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1yve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_960__pyx_fuse_1yve(__pyx_self, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_960__pyx_fuse_1yve(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0, double __pyx_v_x1) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_fuse_1yve", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yve(__pyx_v_x0, __pyx_v_x1, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.__pyx_fuse_1yve", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3352
 *             return NPY_NAN
 * 
 * cpdef double zetac(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.zetac"""
 *     return _func_zetac(x0)
 */

static PyObject *__pyx_pw_5scipy_7special_14cython_special_449zetac(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static double __pyx_f_5scipy_7special_14cython_special_zetac(double __pyx_v_x0, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;

  /* "scipy/special/cython_special.pyx":3354
 * cpdef double zetac(double x0) nogil:
 *     """See the documentation for scipy.special.zetac"""
 *     return _func_zetac(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_airy_d_py(int N, double x0):
 */
  __pyx_r = zetac(__pyx_v_x0);
  goto __pyx_L0;

  /* "scipy/special/cython_special.pyx":3352
 *             return NPY_NAN
 * 
 * cpdef double zetac(double x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.zetac"""
 *     return _func_zetac(x0)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_449zetac(PyObject *__pyx_self, PyObject *__pyx_arg_x0); /*proto*/
static char __pyx_doc_5scipy_7special_14cython_special_448zetac[] = "See the documentation for scipy.special.zetac";
static PyObject *__pyx_pw_5scipy_7special_14cython_special_449zetac(PyObject *__pyx_self, PyObject *__pyx_arg_x0) {
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("zetac (wrapper)", 0);
  assert(__pyx_arg_x0); {
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(__pyx_arg_x0); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3352, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special.zetac", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_448zetac(__pyx_self, ((double)__pyx_v_x0));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_448zetac(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_x0) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("zetac", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_5scipy_7special_14cython_special_zetac(__pyx_v_x0, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("scipy.special.cython_special.zetac", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3356
 *     return _func_zetac(x0)
 * 
 * def _bench_airy_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_451_bench_airy_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_451_bench_airy_d_py = {"_bench_airy_d_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_451_bench_airy_d_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_451_bench_airy_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_airy_d_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_airy_d_py", 1, 2, 2, 1); __PYX_ERR(1, 3356, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_airy_d_py") < 0)) __PYX_ERR(1, 3356, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3356, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3356, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_airy_d_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3356, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_airy_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_450_bench_airy_d_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_450_bench_airy_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_airy_d_py", 0);

  /* "scipy/special/cython_special.pyx":3358
 * def _bench_airy_d_py(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.airy(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3359
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.airy(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_airy_d_cy(int N, double x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_airy); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3356
 *     return _func_zetac(x0)
 * 
 * def _bench_airy_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_airy_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3361
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double y0
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_453_bench_airy_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_453_bench_airy_d_cy = {"_bench_airy_d_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_453_bench_airy_d_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_453_bench_airy_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_airy_d_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_airy_d_cy", 1, 2, 2, 1); __PYX_ERR(1, 3361, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_airy_d_cy") < 0)) __PYX_ERR(1, 3361, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3361, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3361, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_airy_d_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3361, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_airy_d_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_452_bench_airy_d_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_452_bench_airy_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  double __pyx_v_y0;
  double __pyx_v_y1;
  double __pyx_v_y2;
  double __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_airy_d_cy", 0);

  /* "scipy/special/cython_special.pyx":3367
 *     cdef double y2
 *     cdef double y3
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3368
 *     cdef double y3
 *     for n in range(N):
 *         airy(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 * 
 * def _bench_airy_D_py(int N, double complex x0):
 */
    __pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airy(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));
  }

  /* "scipy/special/cython_special.pyx":3361
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double y0
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3370
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_airy_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_455_bench_airy_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_455_bench_airy_D_py = {"_bench_airy_D_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_455_bench_airy_D_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_455_bench_airy_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_airy_D_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_airy_D_py", 1, 2, 2, 1); __PYX_ERR(1, 3370, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_airy_D_py") < 0)) __PYX_ERR(1, 3370, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3370, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3370, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_airy_D_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3370, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_airy_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_454_bench_airy_D_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_454_bench_airy_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_airy_D_py", 0);

  /* "scipy/special/cython_special.pyx":3372
 * def _bench_airy_D_py(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.airy(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3373
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.airy(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_airy_D_cy(int N, double complex x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_airy); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_PyComplex_FromComplex(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3370
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_airy_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_airy_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3375
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double complex y0
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_457_bench_airy_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_457_bench_airy_D_cy = {"_bench_airy_D_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_457_bench_airy_D_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_457_bench_airy_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_airy_D_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_airy_D_cy", 1, 2, 2, 1); __PYX_ERR(1, 3375, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_airy_D_cy") < 0)) __PYX_ERR(1, 3375, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3375, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3375, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_airy_D_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3375, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_airy_D_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_456_bench_airy_D_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_456_bench_airy_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  __pyx_t_double_complex __pyx_v_y0;
  __pyx_t_double_complex __pyx_v_y1;
  __pyx_t_double_complex __pyx_v_y2;
  __pyx_t_double_complex __pyx_v_y3;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_airy_D_cy", 0);

  /* "scipy/special/cython_special.pyx":3381
 *     cdef double complex y2
 *     cdef double complex y3
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3382
 *     cdef double complex y3
 *     for n in range(N):
 *         airy(x0, &y0, &y1, &y2, &y3)             # <<<<<<<<<<<<<<
 * 
 * def _bench_beta_dd_py(int N, double x0, double x1):
 */
    __pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airy(__pyx_v_x0, (&__pyx_v_y0), (&__pyx_v_y1), (&__pyx_v_y2), (&__pyx_v_y3));
  }

  /* "scipy/special/cython_special.pyx":3375
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double complex y0
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3384
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_beta_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_459_bench_beta_dd_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_459_bench_beta_dd_py = {"_bench_beta_dd_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_459_bench_beta_dd_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_459_bench_beta_dd_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_beta_dd_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_beta_dd_py", 1, 3, 3, 1); __PYX_ERR(1, 3384, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_beta_dd_py", 1, 3, 3, 2); __PYX_ERR(1, 3384, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_beta_dd_py") < 0)) __PYX_ERR(1, 3384, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3384, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3384, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3384, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_beta_dd_py", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3384, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_beta_dd_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_458_bench_beta_dd_py(__pyx_self, __pyx_v_N, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_458_bench_beta_dd_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_beta_dd_py", 0);

  /* "scipy/special/cython_special.pyx":3386
 * def _bench_beta_dd_py(int N, double x0, double x1):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.beta(x0, x1)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3387
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.beta(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * def _bench_beta_dd_cy(int N, double x0, double x1):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_beta); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyFloat_FromDouble(__pyx_v_x1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 3387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3387, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3387, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3387, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7);
      __pyx_t_5 = 0;
      __pyx_t_7 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3387, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3384
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_beta_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_beta_dd_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3389
 *         _ufuncs.beta(x0, x1)
 * 
 * def _bench_beta_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_461_bench_beta_dd_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_461_bench_beta_dd_cy = {"_bench_beta_dd_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_461_bench_beta_dd_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_461_bench_beta_dd_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_beta_dd_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_beta_dd_cy", 1, 3, 3, 1); __PYX_ERR(1, 3389, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_beta_dd_cy", 1, 3, 3, 2); __PYX_ERR(1, 3389, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_beta_dd_cy") < 0)) __PYX_ERR(1, 3389, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3389, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3389, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3389, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_beta_dd_cy", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3389, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_beta_dd_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_460_bench_beta_dd_cy(__pyx_self, __pyx_v_N, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_460_bench_beta_dd_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_beta_dd_cy", 0);

  /* "scipy/special/cython_special.pyx":3391
 * def _bench_beta_dd_cy(int N, double x0, double x1):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         beta(x0, x1)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3392
 *     cdef int n
 *     for n in range(N):
 *         beta(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * def _bench_erf_d_py(int N, double x0):
 */
    (void)(__pyx_f_5scipy_7special_14cython_special_beta(__pyx_v_x0, __pyx_v_x1, 0));
  }

  /* "scipy/special/cython_special.pyx":3389
 *         _ufuncs.beta(x0, x1)
 * 
 * def _bench_beta_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3394
 *         beta(x0, x1)
 * 
 * def _bench_erf_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_463_bench_erf_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_463_bench_erf_d_py = {"_bench_erf_d_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_463_bench_erf_d_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_463_bench_erf_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_erf_d_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_erf_d_py", 1, 2, 2, 1); __PYX_ERR(1, 3394, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_erf_d_py") < 0)) __PYX_ERR(1, 3394, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3394, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3394, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_erf_d_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3394, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_erf_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_462_bench_erf_d_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_462_bench_erf_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_erf_d_py", 0);

  /* "scipy/special/cython_special.pyx":3396
 * def _bench_erf_d_py(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.erf(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3397
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.erf(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_erf_d_cy(int N, double x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3397, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_erf); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3397, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3397, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3397, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3394
 *         beta(x0, x1)
 * 
 * def _bench_erf_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_erf_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3399
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_465_bench_erf_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_465_bench_erf_d_cy = {"_bench_erf_d_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_465_bench_erf_d_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_465_bench_erf_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_erf_d_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_erf_d_cy", 1, 2, 2, 1); __PYX_ERR(1, 3399, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_erf_d_cy") < 0)) __PYX_ERR(1, 3399, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3399, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3399, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_erf_d_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3399, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_erf_d_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_464_bench_erf_d_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_464_bench_erf_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_erf_d_cy", 0);

  /* "scipy/special/cython_special.pyx":3401
 * def _bench_erf_d_cy(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         erf(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3402
 *     cdef int n
 *     for n in range(N):
 *         erf(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_erf_D_py(int N, double complex x0):
 */
    (void)(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erf(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3399
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3404
 *         erf(x0)
 * 
 * def _bench_erf_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_467_bench_erf_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_467_bench_erf_D_py = {"_bench_erf_D_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_467_bench_erf_D_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_467_bench_erf_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_erf_D_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_erf_D_py", 1, 2, 2, 1); __PYX_ERR(1, 3404, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_erf_D_py") < 0)) __PYX_ERR(1, 3404, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3404, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3404, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_erf_D_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3404, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_erf_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_466_bench_erf_D_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_466_bench_erf_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_erf_D_py", 0);

  /* "scipy/special/cython_special.pyx":3406
 * def _bench_erf_D_py(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.erf(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3407
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.erf(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_erf_D_cy(int N, double complex x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3407, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_erf); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3407, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_PyComplex_FromComplex(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3407, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3407, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3404
 *         erf(x0)
 * 
 * def _bench_erf_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_erf_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3409
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_469_bench_erf_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_469_bench_erf_D_cy = {"_bench_erf_D_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_469_bench_erf_D_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_469_bench_erf_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_erf_D_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_erf_D_cy", 1, 2, 2, 1); __PYX_ERR(1, 3409, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_erf_D_cy") < 0)) __PYX_ERR(1, 3409, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3409, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3409, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_erf_D_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3409, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_erf_D_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_468_bench_erf_D_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_468_bench_erf_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_erf_D_cy", 0);

  /* "scipy/special/cython_special.pyx":3411
 * def _bench_erf_D_cy(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         erf(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3412
 *     cdef int n
 *     for n in range(N):
 *         erf(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_exprel_d_py(int N, double x0):
 */
    (void)(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erf(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3409
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3414
 *         erf(x0)
 * 
 * def _bench_exprel_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_471_bench_exprel_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_471_bench_exprel_d_py = {"_bench_exprel_d_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_471_bench_exprel_d_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_471_bench_exprel_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_exprel_d_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_exprel_d_py", 1, 2, 2, 1); __PYX_ERR(1, 3414, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_exprel_d_py") < 0)) __PYX_ERR(1, 3414, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3414, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3414, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_exprel_d_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3414, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_exprel_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_470_bench_exprel_d_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_470_bench_exprel_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_exprel_d_py", 0);

  /* "scipy/special/cython_special.pyx":3416
 * def _bench_exprel_d_py(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.exprel(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3417
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.exprel(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_exprel_d_cy(int N, double x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_exprel); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3417, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3414
 *         erf(x0)
 * 
 * def _bench_exprel_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_exprel_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3419
 *         _ufuncs.exprel(x0)
 * 
 * def _bench_exprel_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_473_bench_exprel_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_473_bench_exprel_d_cy = {"_bench_exprel_d_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_473_bench_exprel_d_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_473_bench_exprel_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_exprel_d_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_exprel_d_cy", 1, 2, 2, 1); __PYX_ERR(1, 3419, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_exprel_d_cy") < 0)) __PYX_ERR(1, 3419, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3419, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3419, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_exprel_d_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3419, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_exprel_d_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_472_bench_exprel_d_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_472_bench_exprel_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_exprel_d_cy", 0);

  /* "scipy/special/cython_special.pyx":3421
 * def _bench_exprel_d_cy(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         exprel(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3422
 *     cdef int n
 *     for n in range(N):
 *         exprel(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_gamma_d_py(int N, double x0):
 */
    (void)(__pyx_f_5scipy_7special_14cython_special_exprel(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3419
 *         _ufuncs.exprel(x0)
 * 
 * def _bench_exprel_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3424
 *         exprel(x0)
 * 
 * def _bench_gamma_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_475_bench_gamma_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_475_bench_gamma_d_py = {"_bench_gamma_d_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_475_bench_gamma_d_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_475_bench_gamma_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_gamma_d_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_gamma_d_py", 1, 2, 2, 1); __PYX_ERR(1, 3424, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_gamma_d_py") < 0)) __PYX_ERR(1, 3424, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3424, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3424, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_gamma_d_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3424, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_gamma_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_474_bench_gamma_d_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_474_bench_gamma_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_gamma_d_py", 0);

  /* "scipy/special/cython_special.pyx":3426
 * def _bench_gamma_d_py(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.gamma(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3427
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.gamma(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_gamma_d_cy(int N, double x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_gamma); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3424
 *         exprel(x0)
 * 
 * def _bench_gamma_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_gamma_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3429
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_477_bench_gamma_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_477_bench_gamma_d_cy = {"_bench_gamma_d_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_477_bench_gamma_d_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_477_bench_gamma_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_gamma_d_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_gamma_d_cy", 1, 2, 2, 1); __PYX_ERR(1, 3429, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_gamma_d_cy") < 0)) __PYX_ERR(1, 3429, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3429, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3429, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_gamma_d_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3429, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_gamma_d_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_476_bench_gamma_d_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_476_bench_gamma_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_gamma_d_cy", 0);

  /* "scipy/special/cython_special.pyx":3431
 * def _bench_gamma_d_cy(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         gamma(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3432
 *     cdef int n
 *     for n in range(N):
 *         gamma(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_gamma_D_py(int N, double complex x0):
 */
    (void)(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_gamma(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3429
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3434
 *         gamma(x0)
 * 
 * def _bench_gamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_479_bench_gamma_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_479_bench_gamma_D_py = {"_bench_gamma_D_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_479_bench_gamma_D_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_479_bench_gamma_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_gamma_D_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_gamma_D_py", 1, 2, 2, 1); __PYX_ERR(1, 3434, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_gamma_D_py") < 0)) __PYX_ERR(1, 3434, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3434, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3434, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_gamma_D_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3434, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_gamma_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_478_bench_gamma_D_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_478_bench_gamma_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_gamma_D_py", 0);

  /* "scipy/special/cython_special.pyx":3436
 * def _bench_gamma_D_py(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.gamma(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3437
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.gamma(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_gamma_D_cy(int N, double complex x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_gamma); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_PyComplex_FromComplex(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3434
 *         gamma(x0)
 * 
 * def _bench_gamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_gamma_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3439
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_481_bench_gamma_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_481_bench_gamma_D_cy = {"_bench_gamma_D_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_481_bench_gamma_D_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_481_bench_gamma_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_gamma_D_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_gamma_D_cy", 1, 2, 2, 1); __PYX_ERR(1, 3439, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_gamma_D_cy") < 0)) __PYX_ERR(1, 3439, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3439, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3439, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_gamma_D_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3439, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_gamma_D_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_480_bench_gamma_D_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_480_bench_gamma_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_gamma_D_cy", 0);

  /* "scipy/special/cython_special.pyx":3441
 * def _bench_gamma_D_cy(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         gamma(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3442
 *     cdef int n
 *     for n in range(N):
 *         gamma(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_jv_dd_py(int N, double x0, double x1):
 */
    (void)(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_gamma(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3439
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3444
 *         gamma(x0)
 * 
 * def _bench_jv_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_483_bench_jv_dd_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_483_bench_jv_dd_py = {"_bench_jv_dd_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_483_bench_jv_dd_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_483_bench_jv_dd_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_jv_dd_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dd_py", 1, 3, 3, 1); __PYX_ERR(1, 3444, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dd_py", 1, 3, 3, 2); __PYX_ERR(1, 3444, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_jv_dd_py") < 0)) __PYX_ERR(1, 3444, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3444, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3444, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3444, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_jv_dd_py", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3444, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_jv_dd_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_482_bench_jv_dd_py(__pyx_self, __pyx_v_N, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_482_bench_jv_dd_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_jv_dd_py", 0);

  /* "scipy/special/cython_special.pyx":3446
 * def _bench_jv_dd_py(int N, double x0, double x1):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.jv(x0, x1)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3447
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.jv(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * def _bench_jv_dd_cy(int N, double x0, double x1):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_jv); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyFloat_FromDouble(__pyx_v_x1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 3447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3447, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3447, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3447, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7);
      __pyx_t_5 = 0;
      __pyx_t_7 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3447, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3444
 *         gamma(x0)
 * 
 * def _bench_jv_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_jv_dd_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3449
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_485_bench_jv_dd_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_485_bench_jv_dd_cy = {"_bench_jv_dd_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_485_bench_jv_dd_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_485_bench_jv_dd_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  double __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_jv_dd_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dd_cy", 1, 3, 3, 1); __PYX_ERR(1, 3449, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dd_cy", 1, 3, 3, 2); __PYX_ERR(1, 3449, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_jv_dd_cy") < 0)) __PYX_ERR(1, 3449, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3449, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3449, __pyx_L3_error)
    __pyx_v_x1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_x1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3449, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_jv_dd_cy", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3449, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_jv_dd_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_484_bench_jv_dd_cy(__pyx_self, __pyx_v_N, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_484_bench_jv_dd_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, double __pyx_v_x1) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_jv_dd_cy", 0);

  /* "scipy/special/cython_special.pyx":3451
 * def _bench_jv_dd_cy(int N, double x0, double x1):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         jv(x0, x1)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3452
 *     cdef int n
 *     for n in range(N):
 *         jv(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * def _bench_jv_dD_py(int N, double x0, double complex x1):
 */
    (void)(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jv(__pyx_v_x0, __pyx_v_x1, 0));
  }

  /* "scipy/special/cython_special.pyx":3449
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3454
 *         jv(x0, x1)
 * 
 * def _bench_jv_dD_py(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_487_bench_jv_dD_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_487_bench_jv_dD_py = {"_bench_jv_dD_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_487_bench_jv_dD_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_487_bench_jv_dD_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_jv_dD_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dD_py", 1, 3, 3, 1); __PYX_ERR(1, 3454, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dD_py", 1, 3, 3, 2); __PYX_ERR(1, 3454, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_jv_dD_py") < 0)) __PYX_ERR(1, 3454, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3454, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3454, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3454, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_jv_dD_py", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3454, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_jv_dD_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_486_bench_jv_dD_py(__pyx_self, __pyx_v_N, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_486_bench_jv_dD_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_jv_dD_py", 0);

  /* "scipy/special/cython_special.pyx":3456
 * def _bench_jv_dD_py(int N, double x0, double complex x1):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.jv(x0, x1)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3457
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.jv(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * def _bench_jv_dD_cy(int N, double x0, double complex x1):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_jv); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __pyx_PyComplex_FromComplex(__pyx_v_x1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 3457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3457, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_7};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3457, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 3457, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_7);
      __pyx_t_5 = 0;
      __pyx_t_7 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3457, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3454
 *         jv(x0, x1)
 * 
 * def _bench_jv_dD_py(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_jv_dD_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3459
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dD_cy(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_489_bench_jv_dD_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_489_bench_jv_dD_cy = {"_bench_jv_dD_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_489_bench_jv_dD_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_489_bench_jv_dD_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  __pyx_t_double_complex __pyx_v_x1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_jv_dD_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,&__pyx_n_s_x1,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dD_cy", 1, 3, 3, 1); __PYX_ERR(1, 3459, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x1)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_jv_dD_cy", 1, 3, 3, 2); __PYX_ERR(1, 3459, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_jv_dD_cy") < 0)) __PYX_ERR(1, 3459, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3459, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3459, __pyx_L3_error)
    __pyx_v_x1 = __Pyx_PyComplex_As___pyx_t_double_complex(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3459, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_jv_dD_cy", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3459, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_jv_dD_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_488_bench_jv_dD_cy(__pyx_self, __pyx_v_N, __pyx_v_x0, __pyx_v_x1);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_488_bench_jv_dD_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0, __pyx_t_double_complex __pyx_v_x1) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_jv_dD_cy", 0);

  /* "scipy/special/cython_special.pyx":3461
 * def _bench_jv_dD_cy(int N, double x0, double complex x1):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         jv(x0, x1)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3462
 *     cdef int n
 *     for n in range(N):
 *         jv(x0, x1)             # <<<<<<<<<<<<<<
 * 
 * def _bench_loggamma_D_py(int N, double complex x0):
 */
    (void)(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jv(__pyx_v_x0, __pyx_v_x1, 0));
  }

  /* "scipy/special/cython_special.pyx":3459
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dD_cy(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3464
 *         jv(x0, x1)
 * 
 * def _bench_loggamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_491_bench_loggamma_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_491_bench_loggamma_D_py = {"_bench_loggamma_D_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_491_bench_loggamma_D_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_491_bench_loggamma_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_loggamma_D_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_loggamma_D_py", 1, 2, 2, 1); __PYX_ERR(1, 3464, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_loggamma_D_py") < 0)) __PYX_ERR(1, 3464, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3464, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3464, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_loggamma_D_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3464, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_loggamma_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_490_bench_loggamma_D_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_490_bench_loggamma_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_loggamma_D_py", 0);

  /* "scipy/special/cython_special.pyx":3466
 * def _bench_loggamma_D_py(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.loggamma(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3467
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.loggamma(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_loggamma_D_cy(int N, double complex x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_loggamma); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_PyComplex_FromComplex(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3464
 *         jv(x0, x1)
 * 
 * def _bench_loggamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_loggamma_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3469
 *         _ufuncs.loggamma(x0)
 * 
 * def _bench_loggamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_493_bench_loggamma_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_493_bench_loggamma_D_cy = {"_bench_loggamma_D_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_493_bench_loggamma_D_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_493_bench_loggamma_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_loggamma_D_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_loggamma_D_cy", 1, 2, 2, 1); __PYX_ERR(1, 3469, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_loggamma_D_cy") < 0)) __PYX_ERR(1, 3469, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3469, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3469, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_loggamma_D_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3469, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_loggamma_D_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_492_bench_loggamma_D_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_492_bench_loggamma_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_loggamma_D_cy", 0);

  /* "scipy/special/cython_special.pyx":3471
 * def _bench_loggamma_D_cy(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         loggamma(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3472
 *     cdef int n
 *     for n in range(N):
 *         loggamma(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_logit_d_py(int N, double x0):
 */
    (void)(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_loggamma(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3469
 *         _ufuncs.loggamma(x0)
 * 
 * def _bench_loggamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3474
 *         loggamma(x0)
 * 
 * def _bench_logit_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_495_bench_logit_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_495_bench_logit_d_py = {"_bench_logit_d_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_495_bench_logit_d_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_495_bench_logit_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_logit_d_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_logit_d_py", 1, 2, 2, 1); __PYX_ERR(1, 3474, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_logit_d_py") < 0)) __PYX_ERR(1, 3474, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3474, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3474, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_logit_d_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3474, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_logit_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_494_bench_logit_d_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_494_bench_logit_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_logit_d_py", 0);

  /* "scipy/special/cython_special.pyx":3476
 * def _bench_logit_d_py(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.logit(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3477
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.logit(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_logit_d_cy(int N, double x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_logit); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3474
 *         loggamma(x0)
 * 
 * def _bench_logit_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_logit_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3479
 *         _ufuncs.logit(x0)
 * 
 * def _bench_logit_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_497_bench_logit_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_497_bench_logit_d_cy = {"_bench_logit_d_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_497_bench_logit_d_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_497_bench_logit_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_logit_d_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_logit_d_cy", 1, 2, 2, 1); __PYX_ERR(1, 3479, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_logit_d_cy") < 0)) __PYX_ERR(1, 3479, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3479, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3479, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_logit_d_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3479, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_logit_d_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_496_bench_logit_d_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_496_bench_logit_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_logit_d_cy", 0);

  /* "scipy/special/cython_special.pyx":3481
 * def _bench_logit_d_cy(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         logit(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3482
 *     cdef int n
 *     for n in range(N):
 *         logit(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_psi_d_py(int N, double x0):
 */
    (void)(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_logit(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3479
 *         _ufuncs.logit(x0)
 * 
 * def _bench_logit_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3484
 *         logit(x0)
 * 
 * def _bench_psi_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_499_bench_psi_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_499_bench_psi_d_py = {"_bench_psi_d_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_499_bench_psi_d_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_499_bench_psi_d_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_psi_d_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_psi_d_py", 1, 2, 2, 1); __PYX_ERR(1, 3484, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_psi_d_py") < 0)) __PYX_ERR(1, 3484, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3484, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3484, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_psi_d_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3484, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_psi_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_498_bench_psi_d_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_498_bench_psi_d_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_psi_d_py", 0);

  /* "scipy/special/cython_special.pyx":3486
 * def _bench_psi_d_py(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.psi(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3487
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.psi(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_psi_d_cy(int N, double x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_psi); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3484
 *         logit(x0)
 * 
 * def _bench_psi_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_psi_d_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3489
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_501_bench_psi_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_501_bench_psi_d_cy = {"_bench_psi_d_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_501_bench_psi_d_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_501_bench_psi_d_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  double __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_psi_d_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_psi_d_cy", 1, 2, 2, 1); __PYX_ERR(1, 3489, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_psi_d_cy") < 0)) __PYX_ERR(1, 3489, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3489, __pyx_L3_error)
    __pyx_v_x0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_x0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 3489, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_psi_d_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3489, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_psi_d_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_500_bench_psi_d_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_500_bench_psi_d_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, double __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_psi_d_cy", 0);

  /* "scipy/special/cython_special.pyx":3491
 * def _bench_psi_d_cy(int N, double x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         psi(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3492
 *     cdef int n
 *     for n in range(N):
 *         psi(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_psi_D_py(int N, double complex x0):
 */
    (void)(__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_psi(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3489
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3494
 *         psi(x0)
 * 
 * def _bench_psi_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_503_bench_psi_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_503_bench_psi_D_py = {"_bench_psi_D_py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_503_bench_psi_D_py, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_503_bench_psi_D_py(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_psi_D_py (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_psi_D_py", 1, 2, 2, 1); __PYX_ERR(1, 3494, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_psi_D_py") < 0)) __PYX_ERR(1, 3494, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3494, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3494, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_psi_D_py", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3494, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_psi_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_502_bench_psi_D_py(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_502_bench_psi_D_py(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_bench_psi_D_py", 0);

  /* "scipy/special/cython_special.pyx":3496
 * def _bench_psi_D_py(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         _ufuncs.psi(x0)
 * 
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3497
 *     cdef int n
 *     for n in range(N):
 *         _ufuncs.psi(x0)             # <<<<<<<<<<<<<<
 * 
 * def _bench_psi_D_cy(int N, double complex x0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_psi); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 3497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_PyComplex_FromComplex(__pyx_v_x0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 3497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }

  /* "scipy/special/cython_special.pyx":3494
 *         psi(x0)
 * 
 * def _bench_psi_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("scipy.special.cython_special._bench_psi_D_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "scipy/special/cython_special.pyx":3499
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

/* Python wrapper */
static PyObject *__pyx_pw_5scipy_7special_14cython_special_505_bench_psi_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_5scipy_7special_14cython_special_505_bench_psi_D_cy = {"_bench_psi_D_cy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_505_bench_psi_D_cy, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_5scipy_7special_14cython_special_505_bench_psi_D_cy(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_N;
  __pyx_t_double_complex __pyx_v_x0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_bench_psi_D_cy (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_N,&__pyx_n_s_x0,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_N)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x0)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("_bench_psi_D_cy", 1, 2, 2, 1); __PYX_ERR(1, 3499, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_bench_psi_D_cy") < 0)) __PYX_ERR(1, 3499, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_N = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_N == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 3499, __pyx_L3_error)
    __pyx_v_x0 = __Pyx_PyComplex_As___pyx_t_double_complex(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3499, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("_bench_psi_D_cy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 3499, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("scipy.special.cython_special._bench_psi_D_cy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_5scipy_7special_14cython_special_504_bench_psi_D_cy(__pyx_self, __pyx_v_N, __pyx_v_x0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_5scipy_7special_14cython_special_504_bench_psi_D_cy(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_N, __pyx_t_double_complex __pyx_v_x0) {
  CYTHON_UNUSED int __pyx_v_n;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  __Pyx_RefNannySetupContext("_bench_psi_D_cy", 0);

  /* "scipy/special/cython_special.pyx":3501
 * def _bench_psi_D_cy(int N, double complex x0):
 *     cdef int n
 *     for n in range(N):             # <<<<<<<<<<<<<<
 *         psi(x0)
 */
  __pyx_t_1 = __pyx_v_N;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_n = __pyx_t_3;

    /* "scipy/special/cython_special.pyx":3502
 *     cdef int n
 *     for n in range(N):
 *         psi(x0)             # <<<<<<<<<<<<<<
 */
    (void)(__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_psi(__pyx_v_x0, 0));
  }

  /* "scipy/special/cython_special.pyx":3499
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":742
 * 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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":743
 * 
 * cdef inline object PyArray_MultiIterNew1(a):
 *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":742
 * ctypedef npy_cdouble     complex_t
 * 
 * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":745
 *     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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":746
 * 
 * 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);
  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":745
 *     return PyArray_MultiIterNew(1, <void*>a)
 * 
 * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":748
 *     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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":749
 * 
 * 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);
  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":748
 *     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)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":751
 *     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)
 * 
 */

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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":752
 * 
 * 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):
 */
  __Pyx_XDECREF(__pyx_r);
  __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_ERR(2, 752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":751
 *     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)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":754
 *     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)
 * 
 */

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;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":755
 * 
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 */
  __Pyx_XDECREF(__pyx_r);
  __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_ERR(2, 755, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":754
 *     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)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":757
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":758
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
 *         return <tuple>d.subarray.shape
 *     else:
 */
  __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0);
  if (__pyx_t_1) {

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":759
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape             # <<<<<<<<<<<<<<
 *     else:
 *         return ()
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape));
    __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape);
    goto __pyx_L0;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":758
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
 *         return <tuple>d.subarray.shape
 *     else:
 */
  }

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":761
 *         return <tuple>d.subarray.shape
 *     else:
 *         return ()             # <<<<<<<<<<<<<<
 * 
 * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_empty_tuple);
    __pyx_r = __pyx_empty_tuple;
    goto __pyx_L0;
  }

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":757
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):             # <<<<<<<<<<<<<<
 *     if PyDataType_HASSUBARRAY(d):
 *         return <tuple>d.subarray.shape
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":763
 *         return ()
 * 
 * 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.
 */

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) {
  PyArray_Descr *__pyx_v_child = 0;
  int __pyx_v_endian_detector;
  int __pyx_v_little_endian;
  PyObject *__pyx_v_fields = 0;
  PyObject *__pyx_v_childname = NULL;
  PyObject *__pyx_v_new_offset = NULL;
  PyObject *__pyx_v_t = NULL;
  char *__pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  long __pyx_t_8;
  char *__pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_util_dtypestring", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":768
 * 
 *     cdef dtype child
 *     cdef int endian_detector = 1             # <<<<<<<<<<<<<<
 *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
 *     cdef tuple fields
 */
  __pyx_v_endian_detector = 1;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":769
 *     cdef dtype child
 *     cdef int endian_detector = 1
 *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
 *     cdef tuple fields
 * 
 */
  __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":772
 *     cdef tuple fields
 * 
 *     for childname in descr.names:             # <<<<<<<<<<<<<<
 *         fields = descr.fields[childname]
 *         child, new_offset = fields
 */
  if (unlikely(__pyx_v_descr->names == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(2, 772, __pyx_L1_error)
  }
  __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 772, __pyx_L1_error)
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 772, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":773
 * 
 *     for childname in descr.names:
 *         fields = descr.fields[childname]             # <<<<<<<<<<<<<<
 *         child, new_offset = fields
 * 
 */
    if (unlikely(__pyx_v_descr->fields == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(2, 773, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 773, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 773, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":774
 *     for childname in descr.names:
 *         fields = descr.fields[childname]
 *         child, new_offset = fields             # <<<<<<<<<<<<<<
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 */
    if (likely(__pyx_v_fields != Py_None)) {
      PyObject* sequence = __pyx_v_fields;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(2, 774, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 774, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 774, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
    } else {
      __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 774, __pyx_L1_error)
    }
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 774, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3));
    __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":776
 *         child, new_offset = fields
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 */
    __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 776, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 776, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0);
    if (unlikely(__pyx_t_6)) {

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":777
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
 * 
 *         if ((child.byteorder == c'>' and little_endian) or
 */
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 777, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(2, 777, __pyx_L1_error)

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":776
 *         child, new_offset = fields
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 */
    }

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":779
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *             (child.byteorder == c'<' and not little_endian)):
 *             raise ValueError(u"Non-native byte order not supported")
 */
    __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0);
    if (!__pyx_t_7) {
      goto __pyx_L8_next_or;
    } else {
    }
    __pyx_t_7 = (__pyx_v_little_endian != 0);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_L8_next_or:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":780
 * 
 *         if ((child.byteorder == c'>' and little_endian) or
 *             (child.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
 *             raise ValueError(u"Non-native byte order not supported")
 *             # One could encode it in the format string and have Cython
 */
    __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0);
    if (__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L7_bool_binop_done:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":779
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *             (child.byteorder == c'<' and not little_endian)):
 *             raise ValueError(u"Non-native byte order not supported")
 */
    if (unlikely(__pyx_t_6)) {

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":781
 *         if ((child.byteorder == c'>' and little_endian) or
 *             (child.byteorder == c'<' 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_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 781, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __PYX_ERR(2, 781, __pyx_L1_error)

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":779
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 * 
 *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 *             (child.byteorder == c'<' and not little_endian)):
 *             raise ValueError(u"Non-native byte order not supported")
 */
    }

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":791
 * 
 *         # Output padding bytes
 *         while offset[0] < new_offset:             # <<<<<<<<<<<<<<
 *             f[0] = 120 # "x"; pad byte
 *             f += 1
 */
    while (1) {
      __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 791, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 791, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 791, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!__pyx_t_6) break;

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":792
 *         # Output padding bytes
 *         while offset[0] < new_offset:
 *             f[0] = 120 # "x"; pad byte             # <<<<<<<<<<<<<<
 *             f += 1
 *             offset[0] += 1
 */
      (__pyx_v_f[0]) = 0x78;

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":793
 *         while offset[0] < new_offset:
 *             f[0] = 120 # "x"; pad byte
 *             f += 1             # <<<<<<<<<<<<<<
 *             offset[0] += 1
 * 
 */
      __pyx_v_f = (__pyx_v_f + 1);

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":794
 *             f[0] = 120 # "x"; pad byte
 *             f += 1
 *             offset[0] += 1             # <<<<<<<<<<<<<<
 * 
 *         offset[0] += child.itemsize
 */
      __pyx_t_8 = 0;
      (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1);
    }

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":796
 *             offset[0] += 1
 * 
 *         offset[0] += child.itemsize             # <<<<<<<<<<<<<<
 * 
 *         if not PyDataType_HASFIELDS(child):
 */
    __pyx_t_8 = 0;
    (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize);

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":798
 *         offset[0] += child.itemsize
 * 
 *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
 *             t = child.type_num
 *             if end - f < 5:
 */
    __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0);
    if (__pyx_t_6) {

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":799
 * 
 *         if not PyDataType_HASFIELDS(child):
 *             t = child.type_num             # <<<<<<<<<<<<<<
 *             if end - f < 5:
 *                 raise RuntimeError(u"Format string allocated too short.")
 */
      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 799, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4);
      __pyx_t_4 = 0;

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":800
 *         if not PyDataType_HASFIELDS(child):
 *             t = child.type_num
 *             if end - f < 5:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError(u"Format string allocated too short.")
 * 
 */
      __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0);
      if (unlikely(__pyx_t_6)) {

        /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":801
 *             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_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __PYX_ERR(2, 801, __pyx_L1_error)

        /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":800
 *         if not PyDataType_HASFIELDS(child):
 *             t = child.type_num
 *             if end - f < 5:             # <<<<<<<<<<<<<<
 *                 raise RuntimeError(u"Format string allocated too short.")
 * 
 */
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":804
 * 
 *             # 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"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 804, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 804, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 98;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":805
 *             # 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"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 805, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 805, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 66;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":806
 *             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"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 806, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 806, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 806, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x68;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":807
 *             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"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 807, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 807, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 807, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 72;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":808
 *             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"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 808, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 808, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 808, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x69;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":809
 *             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"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 809, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 809, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 809, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 73;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":810
 *             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"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 810, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 810, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 810, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x6C;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":811
 *             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"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 811, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 811, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 811, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 76;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":812
 *             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"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 812, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 812, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x71;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":813
 *             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"
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 813, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 813, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 81;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":814
 *             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"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 814, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 814, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 814, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x66;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":815
 *             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
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 815, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 815, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x64;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":816
 *             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
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 816, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 816, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 816, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 0x67;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":817
 *             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
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 817, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 817, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 817, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 90;
        (__pyx_v_f[1]) = 0x66;
        __pyx_v_f = (__pyx_v_f + 1);
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":818
 *             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"
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 818, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 818, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 818, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 90;
        (__pyx_v_f[1]) = 0x64;
        __pyx_v_f = (__pyx_v_f + 1);
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":819
 *             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:
 */
      __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 819, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 819, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 819, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_6) {
        (__pyx_v_f[0]) = 90;
        (__pyx_v_f[1]) = 0x67;
        __pyx_v_f = (__pyx_v_f + 1);
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":820
 *             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:
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 */
      __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 820, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 820, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 820, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (likely(__pyx_t_6)) {
        (__pyx_v_f[0]) = 79;
        goto __pyx_L15;
      }

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":822
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
 *             else:
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
 *             f += 1
 *         else:
 */
      /*else*/ {
        __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __PYX_ERR(2, 822, __pyx_L1_error)
      }
      __pyx_L15:;

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":823
 *             else:
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 *             f += 1             # <<<<<<<<<<<<<<
 *         else:
 *             # Cython ignores struct boundary information ("T{...}"),
 */
      __pyx_v_f = (__pyx_v_f + 1);

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":798
 *         offset[0] += child.itemsize
 * 
 *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
 *             t = child.type_num
 *             if end - f < 5:
 */
      goto __pyx_L13;
    }

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":827
 *             # Cython ignores struct boundary information ("T{...}"),
 *             # so don't output it
 *             f = _util_dtypestring(child, f, end, offset)             # <<<<<<<<<<<<<<
 *     return f
 * 
 */
    /*else*/ {
      __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 827, __pyx_L1_error)
      __pyx_v_f = __pyx_t_9;
    }
    __pyx_L13:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":772
 *     cdef tuple fields
 * 
 *     for childname in descr.names:             # <<<<<<<<<<<<<<
 *         fields = descr.fields[childname]
 *         child, new_offset = fields
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":828
 *             # so don't output it
 *             f = _util_dtypestring(child, f, end, offset)
 *     return f             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_f;
  goto __pyx_L0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":763
 *         return ()
 * 
 * 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.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __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);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":943
 *     int _import_umath() except -1
 * 
 * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)
 */

static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_array_base", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":944
 * 
 * cdef inline void set_array_base(ndarray arr, object base):
 *     Py_INCREF(base) # important to do this before stealing the reference below!             # <<<<<<<<<<<<<<
 *     PyArray_SetBaseObject(arr, base)
 * 
 */
  Py_INCREF(__pyx_v_base);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":945
 * cdef inline void set_array_base(ndarray arr, object base):
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)             # <<<<<<<<<<<<<<
 * 
 * cdef inline object get_array_base(ndarray arr):
 */
  (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base));

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":943
 *     int _import_umath() except -1
 * 
 * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
 *     Py_INCREF(base) # important to do this before stealing the reference below!
 *     PyArray_SetBaseObject(arr, base)
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":947
 *     PyArray_SetBaseObject(arr, base)
 * 
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
  PyObject *__pyx_v_base;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("get_array_base", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":948
 * 
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)             # <<<<<<<<<<<<<<
 *     if base is NULL:
 *         return None
 */
  __pyx_v_base = PyArray_BASE(__pyx_v_arr);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":949
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)
 *     if base is NULL:             # <<<<<<<<<<<<<<
 *         return None
 *     return <object>base
 */
  __pyx_t_1 = ((__pyx_v_base == NULL) != 0);
  if (__pyx_t_1) {

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":950
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 *         return None             # <<<<<<<<<<<<<<
 *     return <object>base
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":949
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)
 *     if base is NULL:             # <<<<<<<<<<<<<<
 *         return None
 *     return <object>base
 */
  }

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":951
 *     if base is NULL:
 *         return None
 *     return <object>base             # <<<<<<<<<<<<<<
 * 
 * # Versions of the import_* functions which are more suitable for
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_base));
  __pyx_r = ((PyObject *)__pyx_v_base);
  goto __pyx_L0;

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":947
 *     PyArray_SetBaseObject(arr, base)
 * 
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 *     base = PyArray_BASE(arr)
 *     if base is NULL:
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":955
 * # Versions of the import_* functions which are more suitable for
 * # Cython code.
 * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         __pyx_import_array()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_array", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":956
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         __pyx_import_array()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":957
 * cdef inline int import_array() except -1:
 *     try:
 *         __pyx_import_array()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy.core.multiarray failed to import")
 */
      __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 957, __pyx_L3_error)

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":956
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         __pyx_import_array()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":958
 *     try:
 *         __pyx_import_array()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy.core.multiarray failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 958, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":959
 *         __pyx_import_array()
 *     except Exception:
 *         raise ImportError("numpy.core.multiarray failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_umath() except -1:
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 959, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(2, 959, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":956
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         __pyx_import_array()
 *     except Exception:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":955
 * # Versions of the import_* functions which are more suitable for
 * # Cython code.
 * cdef inline int import_array() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         __pyx_import_array()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":961
 *         raise ImportError("numpy.core.multiarray failed to import")
 * 
 * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_umath", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":962
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":963
 * cdef inline int import_umath() except -1:
 *     try:
 *         _import_umath()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")
 */
      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 963, __pyx_L3_error)

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":962
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":964
 *     try:
 *         _import_umath()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 964, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":965
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_ufunc() except -1:
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 965, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(2, 965, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":962
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":961
 *         raise ImportError("numpy.core.multiarray failed to import")
 * 
 * cdef inline int import_umath() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":967
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("import_ufunc", 0);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":968
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":969
 * cdef inline int import_ufunc() except -1:
 *     try:
 *         _import_umath()             # <<<<<<<<<<<<<<
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")
 */
      __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 969, __pyx_L3_error)

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":968
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":970
 *     try:
 *         _import_umath()
 *     except Exception:             # <<<<<<<<<<<<<<
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 */
    __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
    if (__pyx_t_4) {
      __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 970, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);

      /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":971
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef extern from *:
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 971, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __PYX_ERR(2, 971, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":968
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":967
 *         raise ImportError("numpy.core.umath failed to import")
 * 
 * cdef inline int import_ufunc() except -1:             # <<<<<<<<<<<<<<
 *     try:
 *         _import_umath()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "sf_error.pxd":28
 * 
 * 
 * cdef inline int _sf_error_test_function(int code) nogil:             # <<<<<<<<<<<<<<
 *     """Function that can raise every sf_error category for testing
 *     purposes.
 */

static CYTHON_INLINE int __pyx_f_5scipy_7special_8sf_error__sf_error_test_function(int __pyx_v_code) {
  sf_error_t __pyx_v_sf_error_code;
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "sf_error.pxd":35
 *     cdef sf_error_t sf_error_code
 * 
 *     if code < 0 or code >= 10:             # <<<<<<<<<<<<<<
 *         sf_error_code = OTHER
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_code < 0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_code >= 10) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "sf_error.pxd":36
 * 
 *     if code < 0 or code >= 10:
 *         sf_error_code = OTHER             # <<<<<<<<<<<<<<
 *     else:
 *         sf_error_code = <sf_error_t>code
 */
    __pyx_v_sf_error_code = SF_ERROR_OTHER;

    /* "sf_error.pxd":35
 *     cdef sf_error_t sf_error_code
 * 
 *     if code < 0 or code >= 10:             # <<<<<<<<<<<<<<
 *         sf_error_code = OTHER
 *     else:
 */
    goto __pyx_L3;
  }

  /* "sf_error.pxd":38
 *         sf_error_code = OTHER
 *     else:
 *         sf_error_code = <sf_error_t>code             # <<<<<<<<<<<<<<
 *     error('_err_test_function', sf_error_code, NULL)
 *     return 0
 */
  /*else*/ {
    __pyx_v_sf_error_code = ((sf_error_t)__pyx_v_code);
  }
  __pyx_L3:;

  /* "sf_error.pxd":39
 *     else:
 *         sf_error_code = <sf_error_t>code
 *     error('_err_test_function', sf_error_code, NULL)             # <<<<<<<<<<<<<<
 *     return 0
 */
  sf_error(((char *)"_err_test_function"), __pyx_v_sf_error_code, NULL);

  /* "sf_error.pxd":40
 *         sf_error_code = <sf_error_t>code
 *     error('_err_test_function', sf_error_code, NULL)
 *     return 0             # <<<<<<<<<<<<<<
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "sf_error.pxd":28
 * 
 * 
 * cdef inline int _sf_error_test_function(int code) nogil:             # <<<<<<<<<<<<<<
 *     """Function that can raise every sf_error category for testing
 *     purposes.
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":39
 *     double_complex c99
 * 
 * cdef inline np.npy_cdouble npy_cdouble_from_double_complex(             # <<<<<<<<<<<<<<
 *         double_complex x) nogil:
 *     cdef _complex_pun z
 */

static CYTHON_INLINE npy_cdouble __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_t_double_complex __pyx_v_x) {
  __pyx_t_5scipy_7special_13_complexstuff__complex_pun __pyx_v_z;
  npy_cdouble __pyx_r;

  /* "_complexstuff.pxd":42
 *         double_complex x) nogil:
 *     cdef _complex_pun z
 *     z.c99 = x             # <<<<<<<<<<<<<<
 *     return z.npy
 * 
 */
  __pyx_v_z.c99 = __pyx_v_x;

  /* "_complexstuff.pxd":43
 *     cdef _complex_pun z
 *     z.c99 = x
 *     return z.npy             # <<<<<<<<<<<<<<
 * 
 * cdef inline double_complex double_complex_from_npy_cdouble(
 */
  __pyx_r = __pyx_v_z.npy;
  goto __pyx_L0;

  /* "_complexstuff.pxd":39
 *     double_complex c99
 * 
 * cdef inline np.npy_cdouble npy_cdouble_from_double_complex(             # <<<<<<<<<<<<<<
 *         double_complex x) nogil:
 *     cdef _complex_pun z
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":45
 *     return z.npy
 * 
 * cdef inline double_complex double_complex_from_npy_cdouble(             # <<<<<<<<<<<<<<
 *         np.npy_cdouble x) nogil:
 *     cdef _complex_pun z
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(npy_cdouble __pyx_v_x) {
  __pyx_t_5scipy_7special_13_complexstuff__complex_pun __pyx_v_z;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":48
 *         np.npy_cdouble x) nogil:
 *     cdef _complex_pun z
 *     z.npy = x             # <<<<<<<<<<<<<<
 *     return z.c99
 * 
 */
  __pyx_v_z.npy = __pyx_v_x;

  /* "_complexstuff.pxd":49
 *     cdef _complex_pun z
 *     z.npy = x
 *     return z.c99             # <<<<<<<<<<<<<<
 * 
 * cdef inline bint zisnan(number_t x) nogil:
 */
  __pyx_r = __pyx_v_z.c99;
  goto __pyx_L0;

  /* "_complexstuff.pxd":45
 *     return z.npy
 * 
 * cdef inline double_complex double_complex_from_npy_cdouble(             # <<<<<<<<<<<<<<
 *         np.npy_cdouble x) nogil:
 *     cdef _complex_pun z
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":51
 *     return z.c99
 * 
 * cdef inline bint zisnan(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_isnan(x.real) or npy_isnan(x.imag)
 */

static CYTHON_INLINE int __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zisnan(double __pyx_v_x) {
  int __pyx_r;

  /* "_complexstuff.pxd":55
 *         return npy_isnan(x.real) or npy_isnan(x.imag)
 *     else:
 *         return npy_isnan(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline bint zisfinite(number_t x) nogil:
 */
  __pyx_r = npy_isnan(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":51
 *     return z.c99
 * 
 * cdef inline bint zisnan(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_isnan(x.real) or npy_isnan(x.imag)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE int __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_t_double_complex __pyx_v_x) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_complexstuff.pxd":53
 * cdef inline bint zisnan(number_t x) nogil:
 *     if number_t is double_complex:
 *         return npy_isnan(x.real) or npy_isnan(x.imag)             # <<<<<<<<<<<<<<
 *     else:
 *         return npy_isnan(x)
 */
  __pyx_t_2 = (npy_isnan(__Pyx_CREAL(__pyx_v_x)) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__Pyx_CIMAG(__pyx_v_x)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "_complexstuff.pxd":51
 *     return z.c99
 * 
 * cdef inline bint zisnan(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_isnan(x.real) or npy_isnan(x.imag)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":57
 *         return npy_isnan(x)
 * 
 * cdef inline bint zisfinite(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_isfinite(x.real) and npy_isfinite(x.imag)
 */

static CYTHON_INLINE int __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zisfinite(double __pyx_v_x) {
  int __pyx_r;

  /* "_complexstuff.pxd":61
 *         return npy_isfinite(x.real) and npy_isfinite(x.imag)
 *     else:
 *         return npy_isfinite(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline bint zisinf(number_t x) nogil:
 */
  __pyx_r = npy_isfinite(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":57
 *         return npy_isnan(x)
 * 
 * cdef inline bint zisfinite(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_isfinite(x.real) and npy_isfinite(x.imag)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE int __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisfinite(__pyx_t_double_complex __pyx_v_x) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_complexstuff.pxd":59
 * cdef inline bint zisfinite(number_t x) nogil:
 *     if number_t is double_complex:
 *         return npy_isfinite(x.real) and npy_isfinite(x.imag)             # <<<<<<<<<<<<<<
 *     else:
 *         return npy_isfinite(x)
 */
  __pyx_t_2 = (npy_isfinite(__Pyx_CREAL(__pyx_v_x)) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = (npy_isfinite(__Pyx_CIMAG(__pyx_v_x)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "_complexstuff.pxd":57
 *         return npy_isnan(x)
 * 
 * cdef inline bint zisfinite(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_isfinite(x.real) and npy_isfinite(x.imag)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":63
 *         return npy_isfinite(x)
 * 
 * cdef inline bint zisinf(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return not zisnan(x) and not zisfinite(x)
 */

static CYTHON_INLINE int __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zisinf(double __pyx_v_x) {
  int __pyx_r;

  /* "_complexstuff.pxd":67
 *         return not zisnan(x) and not zisfinite(x)
 *     else:
 *         return npy_isinf(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double zreal(number_t x) nogil:
 */
  __pyx_r = npy_isinf(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":63
 *         return npy_isfinite(x)
 * 
 * cdef inline bint zisinf(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return not zisnan(x) and not zisfinite(x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE int __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisinf(__pyx_t_double_complex __pyx_v_x) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_complexstuff.pxd":65
 * cdef inline bint zisinf(number_t x) nogil:
 *     if number_t is double_complex:
 *         return not zisnan(x) and not zisfinite(x)             # <<<<<<<<<<<<<<
 *     else:
 *         return npy_isinf(x)
 */
  __pyx_t_2 = ((!(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_x) != 0)) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_2 = ((!(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisfinite(__pyx_v_x) != 0)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "_complexstuff.pxd":63
 *         return npy_isfinite(x)
 * 
 * cdef inline bint zisinf(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return not zisnan(x) and not zisfinite(x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":69
 *         return npy_isinf(x)
 * 
 * cdef inline double zreal(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return x.real
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zreal(double __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":73
 *         return x.real
 *     else:
 *         return x             # <<<<<<<<<<<<<<
 * 
 * cdef inline double zabs(number_t x) nogil:
 */
  __pyx_r = __pyx_v_x;
  goto __pyx_L0;

  /* "_complexstuff.pxd":69
 *         return npy_isinf(x)
 * 
 * cdef inline double zreal(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return x.real
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE double __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zreal(__pyx_t_double_complex __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":71
 * cdef inline double zreal(number_t x) nogil:
 *     if number_t is double_complex:
 *         return x.real             # <<<<<<<<<<<<<<
 *     else:
 *         return x
 */
  __pyx_r = __Pyx_CREAL(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":69
 *         return npy_isinf(x)
 * 
 * cdef inline double zreal(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return x.real
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":75
 *         return x
 * 
 * cdef inline double zabs(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_cabs(npy_cdouble_from_double_complex(x))
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zabs(double __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":79
 *         return npy_cabs(npy_cdouble_from_double_complex(x))
 *     else:
 *         return libc.math.fabs(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double zarg(double complex x) nogil:
 */
  __pyx_r = fabs(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":75
 *         return x
 * 
 * cdef inline double zabs(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_cabs(npy_cdouble_from_double_complex(x))
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE double __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_t_double_complex __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":77
 * cdef inline double zabs(number_t x) nogil:
 *     if number_t is double_complex:
 *         return npy_cabs(npy_cdouble_from_double_complex(x))             # <<<<<<<<<<<<<<
 *     else:
 *         return libc.math.fabs(x)
 */
  __pyx_r = npy_cabs(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x));
  goto __pyx_L0;

  /* "_complexstuff.pxd":75
 *         return x
 * 
 * cdef inline double zabs(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double_complex:
 *         return npy_cabs(npy_cdouble_from_double_complex(x))
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":81
 *         return libc.math.fabs(x)
 * 
 * cdef inline double zarg(double complex x) nogil:             # <<<<<<<<<<<<<<
 *     return npy_carg(npy_cdouble_from_double_complex(x))
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_13_complexstuff_zarg(__pyx_t_double_complex __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":82
 * 
 * cdef inline double zarg(double complex x) nogil:
 *     return npy_carg(npy_cdouble_from_double_complex(x))             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t zlog(number_t x) nogil:
 */
  __pyx_r = npy_carg(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x));
  goto __pyx_L0;

  /* "_complexstuff.pxd":81
 *         return libc.math.fabs(x)
 * 
 * cdef inline double zarg(double complex x) nogil:             # <<<<<<<<<<<<<<
 *     return npy_carg(npy_cdouble_from_double_complex(x))
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":84
 *     return npy_carg(npy_cdouble_from_double_complex(x))
 * 
 * cdef inline number_t zlog(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zlog(double __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":90
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 *         return libc.math.log(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t zexp(number_t x) nogil:
 */
  __pyx_r = log(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":84
 *     return npy_carg(npy_cdouble_from_double_complex(x))
 * 
 * cdef inline number_t zlog(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_t_double_complex __pyx_v_x) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":87
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 *         r = npy_clog(npy_cdouble_from_double_complex(x))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 */
  __pyx_v_r = npy_clog(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x));

  /* "_complexstuff.pxd":88
 *     if number_t is double_complex:
 *         r = npy_clog(npy_cdouble_from_double_complex(x))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 *     else:
 *         return libc.math.log(x)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_complexstuff.pxd":84
 *     return npy_carg(npy_cdouble_from_double_complex(x))
 * 
 * cdef inline number_t zlog(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":92
 *         return libc.math.log(x)
 * 
 * cdef inline number_t zexp(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zexp(double __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":98
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 *         return libc.math.exp(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t zsin(number_t x) nogil:
 */
  __pyx_r = exp(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":92
 *         return libc.math.log(x)
 * 
 * cdef inline number_t zexp(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zexp(__pyx_t_double_complex __pyx_v_x) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":95
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 *         r = npy_cexp(npy_cdouble_from_double_complex(x))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 */
  __pyx_v_r = npy_cexp(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x));

  /* "_complexstuff.pxd":96
 *     if number_t is double_complex:
 *         r = npy_cexp(npy_cdouble_from_double_complex(x))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 *     else:
 *         return libc.math.exp(x)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_complexstuff.pxd":92
 *         return libc.math.log(x)
 * 
 * cdef inline number_t zexp(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":100
 *         return libc.math.exp(x)
 * 
 * cdef inline number_t zsin(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zsin(double __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":106
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 *         return libc.math.sin(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t zcos(number_t x) nogil:
 */
  __pyx_r = sin(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":100
 *         return libc.math.exp(x)
 * 
 * cdef inline number_t zsin(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsin(__pyx_t_double_complex __pyx_v_x) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":103
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 *         r = npy_csin(npy_cdouble_from_double_complex(x))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 */
  __pyx_v_r = npy_csin(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x));

  /* "_complexstuff.pxd":104
 *     if number_t is double_complex:
 *         r = npy_csin(npy_cdouble_from_double_complex(x))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 *     else:
 *         return libc.math.sin(x)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_complexstuff.pxd":100
 *         return libc.math.exp(x)
 * 
 * cdef inline number_t zsin(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":108
 *         return libc.math.sin(x)
 * 
 * cdef inline number_t zcos(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zcos(double __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":114
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 *         return libc.math.cos(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t zsqrt(number_t x) nogil:
 */
  __pyx_r = cos(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":108
 *         return libc.math.sin(x)
 * 
 * cdef inline number_t zcos(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zcos(__pyx_t_double_complex __pyx_v_x) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":111
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 *         r = npy_ccos(npy_cdouble_from_double_complex(x))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 */
  __pyx_v_r = npy_ccos(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x));

  /* "_complexstuff.pxd":112
 *     if number_t is double_complex:
 *         r = npy_ccos(npy_cdouble_from_double_complex(x))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 *     else:
 *         return libc.math.cos(x)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_complexstuff.pxd":108
 *         return libc.math.sin(x)
 * 
 * cdef inline number_t zcos(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":116
 *         return libc.math.cos(x)
 * 
 * cdef inline number_t zsqrt(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zsqrt(double __pyx_v_x) {
  double __pyx_r;

  /* "_complexstuff.pxd":122
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 *         return libc.math.sqrt(x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t zpow(number_t x, double y) nogil:
 */
  __pyx_r = sqrt(__pyx_v_x);
  goto __pyx_L0;

  /* "_complexstuff.pxd":116
 *         return libc.math.cos(x)
 * 
 * cdef inline number_t zsqrt(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__pyx_t_double_complex __pyx_v_x) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":119
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 *         r = npy_csqrt(npy_cdouble_from_double_complex(x))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 */
  __pyx_v_r = npy_csqrt(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x));

  /* "_complexstuff.pxd":120
 *     if number_t is double_complex:
 *         r = npy_csqrt(npy_cdouble_from_double_complex(x))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 *     else:
 *         return libc.math.sqrt(x)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_complexstuff.pxd":116
 *         return libc.math.cos(x)
 * 
 * cdef inline number_t zsqrt(number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     if number_t is double_complex:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":124
 *         return libc.math.sqrt(x)
 * 
 * cdef inline number_t zpow(number_t x, double y) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r, z
 *     # FIXME
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zpow(double __pyx_v_x, double __pyx_v_y) {
  double __pyx_r;

  /* "_complexstuff.pxd":133
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 *         return libc.math.pow(x, y)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double_complex zpack(double zr, double zi) nogil:
 */
  __pyx_r = pow(__pyx_v_x, __pyx_v_y);
  goto __pyx_L0;

  /* "_complexstuff.pxd":124
 *         return libc.math.sqrt(x)
 * 
 * cdef inline number_t zpow(number_t x, double y) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r, z
 *     # FIXME
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zpow(__pyx_t_double_complex __pyx_v_x, double __pyx_v_y) {
  npy_cdouble __pyx_v_r;
  npy_cdouble __pyx_v_z;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":128
 *     # FIXME
 *     if number_t is double_complex:
 *         z.real = y             # <<<<<<<<<<<<<<
 *         z.imag = 0.0
 *         r = npy_cpow(npy_cdouble_from_double_complex(x), z)
 */
  __pyx_v_z.real = __pyx_v_y;

  /* "_complexstuff.pxd":129
 *     if number_t is double_complex:
 *         z.real = y
 *         z.imag = 0.0             # <<<<<<<<<<<<<<
 *         r = npy_cpow(npy_cdouble_from_double_complex(x), z)
 *         return double_complex_from_npy_cdouble(r)
 */
  __pyx_v_z.imag = 0.0;

  /* "_complexstuff.pxd":130
 *         z.real = y
 *         z.imag = 0.0
 *         r = npy_cpow(npy_cdouble_from_double_complex(x), z)             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 *     else:
 */
  __pyx_v_r = npy_cpow(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_x), __pyx_v_z);

  /* "_complexstuff.pxd":131
 *         z.imag = 0.0
 *         r = npy_cpow(npy_cdouble_from_double_complex(x), z)
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 *     else:
 *         return libc.math.pow(x, y)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_complexstuff.pxd":124
 *         return libc.math.sqrt(x)
 * 
 * cdef inline number_t zpow(number_t x, double y) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r, z
 *     # FIXME
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":135
 *         return libc.math.pow(x, y)
 * 
 * cdef inline double_complex zpack(double zr, double zi) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble z
 *     z.real = zr
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_13_complexstuff_zpack(double __pyx_v_zr, double __pyx_v_zi) {
  npy_cdouble __pyx_v_z;
  __pyx_t_double_complex __pyx_r;

  /* "_complexstuff.pxd":137
 * cdef inline double_complex zpack(double zr, double zi) nogil:
 *     cdef np.npy_cdouble z
 *     z.real = zr             # <<<<<<<<<<<<<<
 *     z.imag = zi
 *     return double_complex_from_npy_cdouble(z)
 */
  __pyx_v_z.real = __pyx_v_zr;

  /* "_complexstuff.pxd":138
 *     cdef np.npy_cdouble z
 *     z.real = zr
 *     z.imag = zi             # <<<<<<<<<<<<<<
 *     return double_complex_from_npy_cdouble(z)
 * 
 */
  __pyx_v_z.imag = __pyx_v_zi;

  /* "_complexstuff.pxd":139
 *     z.real = zr
 *     z.imag = zi
 *     return double_complex_from_npy_cdouble(z)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_z);
  goto __pyx_L0;

  /* "_complexstuff.pxd":135
 *         return libc.math.pow(x, y)
 * 
 * cdef inline double_complex zpack(double zr, double zi) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble z
 *     z.real = zr
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_complexstuff.pxd":142
 * 
 * @cython.cdivision(True)
 * cdef inline double complex zlog1(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Compute log, paying special attention to accuracy around 1. We
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_13_complexstuff_zlog1(__pyx_t_double_complex __pyx_v_z) {
  int __pyx_v_n;
  __pyx_t_double_complex __pyx_v_coeff;
  __pyx_t_double_complex __pyx_v_res;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_complexstuff.pxd":151
 *     cdef:
 *         int n
 *         double complex coeff = -1             # <<<<<<<<<<<<<<
 *         double complex res = 0
 * 
 */
  __pyx_v_coeff = __pyx_t_double_complex_from_parts(-1L, 0);

  /* "_complexstuff.pxd":152
 *         int n
 *         double complex coeff = -1
 *         double complex res = 0             # <<<<<<<<<<<<<<
 * 
 *     if zabs(z - 1) > 0.1:
 */
  __pyx_v_res = __pyx_t_double_complex_from_parts(0, 0);

  /* "_complexstuff.pxd":154
 *         double complex res = 0
 * 
 *     if zabs(z - 1) > 0.1:             # <<<<<<<<<<<<<<
 *         return zlog(z)
 *     z = z - 1
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0))) > 0.1) != 0);
  if (__pyx_t_1) {

    /* "_complexstuff.pxd":155
 * 
 *     if zabs(z - 1) > 0.1:
 *         return zlog(z)             # <<<<<<<<<<<<<<
 *     z = z - 1
 *     if z == 0:
 */
    __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_z);
    goto __pyx_L0;

    /* "_complexstuff.pxd":154
 *         double complex res = 0
 * 
 *     if zabs(z - 1) > 0.1:             # <<<<<<<<<<<<<<
 *         return zlog(z)
 *     z = z - 1
 */
  }

  /* "_complexstuff.pxd":156
 *     if zabs(z - 1) > 0.1:
 *         return zlog(z)
 *     z = z - 1             # <<<<<<<<<<<<<<
 *     if z == 0:
 *         return 0
 */
  __pyx_v_z = __Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0));

  /* "_complexstuff.pxd":157
 *         return zlog(z)
 *     z = z - 1
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     for n in range(1, 17):
 */
  __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(0, 0))) != 0);
  if (__pyx_t_1) {

    /* "_complexstuff.pxd":158
 *     z = z - 1
 *     if z == 0:
 *         return 0             # <<<<<<<<<<<<<<
 *     for n in range(1, 17):
 *         coeff *= -z
 */
    __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
    goto __pyx_L0;

    /* "_complexstuff.pxd":157
 *         return zlog(z)
 *     z = z - 1
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     for n in range(1, 17):
 */
  }

  /* "_complexstuff.pxd":159
 *     if z == 0:
 *         return 0
 *     for n in range(1, 17):             # <<<<<<<<<<<<<<
 *         coeff *= -z
 *         res += coeff/n
 */
  for (__pyx_t_2 = 1; __pyx_t_2 < 17; __pyx_t_2+=1) {
    __pyx_v_n = __pyx_t_2;

    /* "_complexstuff.pxd":160
 *         return 0
 *     for n in range(1, 17):
 *         coeff *= -z             # <<<<<<<<<<<<<<
 *         res += coeff/n
 *         if zabs(res/coeff) < tol:
 */
    __pyx_v_coeff = __Pyx_c_prod_double(__pyx_v_coeff, __Pyx_c_neg_double(__pyx_v_z));

    /* "_complexstuff.pxd":161
 *     for n in range(1, 17):
 *         coeff *= -z
 *         res += coeff/n             # <<<<<<<<<<<<<<
 *         if zabs(res/coeff) < tol:
 *             break
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __Pyx_c_quot_double(__pyx_v_coeff, __pyx_t_double_complex_from_parts(__pyx_v_n, 0)));

    /* "_complexstuff.pxd":162
 *         coeff *= -z
 *         res += coeff/n
 *         if zabs(res/coeff) < tol:             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__Pyx_c_quot_double(__pyx_v_res, __pyx_v_coeff)) < 2.220446092504131e-16) != 0);
    if (__pyx_t_1) {

      /* "_complexstuff.pxd":163
 *         res += coeff/n
 *         if zabs(res/coeff) < tol:
 *             break             # <<<<<<<<<<<<<<
 *     return res
 */
      goto __pyx_L6_break;

      /* "_complexstuff.pxd":162
 *         coeff *= -z
 *         res += coeff/n
 *         if zabs(res/coeff) < tol:             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    }
  }
  __pyx_L6_break:;

  /* "_complexstuff.pxd":164
 *         if zabs(res/coeff) < tol:
 *             break
 *     return res             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_complexstuff.pxd":142
 * 
 * @cython.cdivision(True)
 * cdef inline double complex zlog1(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Compute log, paying special attention to accuracy around 1. We
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":46
 * # Fused type wrappers
 * 
 * cdef inline number_t cbesj(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_17_spherical_bessel_cbesj(double __pyx_v_v, double __pyx_v_z) {
  double __pyx_r;

  /* "_spherical_bessel.pxd":49
 *     cdef npy_cdouble r
 *     if number_t is double:
 *         return cbesj_wrap_real(v, z)             # <<<<<<<<<<<<<<
 *     else:
 *         r = cbesj_wrap(v, npy_cdouble_from_double_complex(z))
 */
  __pyx_r = cbesj_wrap_real(__pyx_v_v, __pyx_v_z);
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":46
 * # Fused type wrappers
 * 
 * cdef inline number_t cbesj(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesj(double __pyx_v_v, __pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_spherical_bessel.pxd":51
 *         return cbesj_wrap_real(v, z)
 *     else:
 *         r = cbesj_wrap(v, npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 * 
 */
  __pyx_v_r = cbesj_wrap(__pyx_v_v, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "_spherical_bessel.pxd":52
 *     else:
 *         r = cbesj_wrap(v, npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t cbesy(double v, number_t z) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":46
 * # Fused type wrappers
 * 
 * cdef inline number_t cbesj(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":54
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t cbesy(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_17_spherical_bessel_cbesy(double __pyx_v_v, double __pyx_v_z) {
  double __pyx_r;

  /* "_spherical_bessel.pxd":57
 *     cdef npy_cdouble r
 *     if number_t is double:
 *         return cbesy_wrap_real(v, z)             # <<<<<<<<<<<<<<
 *     else:
 *         r = cbesy_wrap(v, npy_cdouble_from_double_complex(z))
 */
  __pyx_r = cbesy_wrap_real(__pyx_v_v, __pyx_v_z);
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":54
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t cbesy(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesy(double __pyx_v_v, __pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_spherical_bessel.pxd":59
 *         return cbesy_wrap_real(v, z)
 *     else:
 *         r = cbesy_wrap(v, npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 * 
 */
  __pyx_v_r = cbesy_wrap(__pyx_v_v, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "_spherical_bessel.pxd":60
 *     else:
 *         r = cbesy_wrap(v, npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t cbesk(double v, number_t z) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":54
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t cbesy(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":62
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t cbesk(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_17_spherical_bessel_cbesk(double __pyx_v_v, double __pyx_v_z) {
  double __pyx_r;

  /* "_spherical_bessel.pxd":65
 *     cdef npy_cdouble r
 *     if number_t is double:
 *         return cbesk_wrap_real(v, z)             # <<<<<<<<<<<<<<
 *     else:
 *         r = cbesk_wrap(v, npy_cdouble_from_double_complex(z))
 */
  __pyx_r = cbesk_wrap_real(__pyx_v_v, __pyx_v_z);
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":62
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t cbesk(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesk(double __pyx_v_v, __pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_spherical_bessel.pxd":67
 *         return cbesk_wrap_real(v, z)
 *     else:
 *         r = cbesk_wrap(v, npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 * 
 */
  __pyx_v_r = cbesk_wrap(__pyx_v_v, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "_spherical_bessel.pxd":68
 *     else:
 *         r = cbesk_wrap(v, npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":62
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t cbesk(double v, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":74
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_jn_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double s0, s1, sn
 *     cdef int idx
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_real(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_v_s0;
  double __pyx_v_s1;
  double __pyx_v_sn;
  int __pyx_v_idx;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;
  int __pyx_t_5;

  /* "_spherical_bessel.pxd":78
 *     cdef int idx
 * 
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 *     if n < 0:
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_x) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":79
 * 
 *     if npy_isnan(x):
 *         return x             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_x;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":78
 *     cdef int idx
 * 
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":80
 *     if npy_isnan(x):
 *         return x
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":81
 *         return x
 *     if n < 0:
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if x == inf or x == -inf:
 */
    sf_error(((char *)"spherical_jn"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":82
 *     if n < 0:
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if x == inf or x == -inf:
 *         return 0
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":80
 *     if npy_isnan(x):
 *         return x
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":83
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if x == inf or x == -inf:             # <<<<<<<<<<<<<<
 *         return 0
 *     if x == 0:
 */
  __pyx_t_2 = ((__pyx_v_x == NPY_INFINITY) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_x == (-NPY_INFINITY)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":84
 *         return nan
 *     if x == inf or x == -inf:
 *         return 0             # <<<<<<<<<<<<<<
 *     if x == 0:
 *         if n == 0:
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":83
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if x == inf or x == -inf:             # <<<<<<<<<<<<<<
 *         return 0
 *     if x == 0:
 */
  }

  /* "_spherical_bessel.pxd":85
 *     if x == inf or x == -inf:
 *         return 0
 *     if x == 0:             # <<<<<<<<<<<<<<
 *         if n == 0:
 *             return 1
 */
  __pyx_t_1 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":86
 *         return 0
 *     if x == 0:
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_n == 0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":87
 *     if x == 0:
 *         if n == 0:
 *             return 1             # <<<<<<<<<<<<<<
 *         else:
 *             return 0
 */
      __pyx_r = 1.0;
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":86
 *         return 0
 *     if x == 0:
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":89
 *             return 1
 *         else:
 *             return 0             # <<<<<<<<<<<<<<
 * 
 *     if n > 0 and n >= x:
 */
    /*else*/ {
      __pyx_r = 0.0;
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":85
 *     if x == inf or x == -inf:
 *         return 0
 *     if x == 0:             # <<<<<<<<<<<<<<
 *         if n == 0:
 *             return 1
 */
  }

  /* "_spherical_bessel.pxd":91
 *             return 0
 * 
 *     if n > 0 and n >= x:             # <<<<<<<<<<<<<<
 *         return sqrt(M_PI_2/x)*cbesj(n + 0.5, x)
 * 
 */
  __pyx_t_2 = ((__pyx_v_n > 0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L11_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_n >= __pyx_v_x) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L11_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":92
 * 
 *     if n > 0 and n >= x:
 *         return sqrt(M_PI_2/x)*cbesj(n + 0.5, x)             # <<<<<<<<<<<<<<
 * 
 *     s0 = sin(x)/x
 */
    __pyx_r = (sqrt((((double)M_PI_2) / __pyx_v_x)) * __pyx_fuse_0__pyx_f_5scipy_7special_17_spherical_bessel_cbesj((__pyx_v_n + 0.5), __pyx_v_x));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":91
 *             return 0
 * 
 *     if n > 0 and n >= x:             # <<<<<<<<<<<<<<
 *         return sqrt(M_PI_2/x)*cbesj(n + 0.5, x)
 * 
 */
  }

  /* "_spherical_bessel.pxd":94
 *         return sqrt(M_PI_2/x)*cbesj(n + 0.5, x)
 * 
 *     s0 = sin(x)/x             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return s0
 */
  __pyx_v_s0 = (sin(__pyx_v_x) / __pyx_v_x);

  /* "_spherical_bessel.pxd":95
 * 
 *     s0 = sin(x)/x
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return s0
 *     s1 = (s0 - cos(x))/x
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":96
 *     s0 = sin(x)/x
 *     if n == 0:
 *         return s0             # <<<<<<<<<<<<<<
 *     s1 = (s0 - cos(x))/x
 *     if n == 1:
 */
    __pyx_r = __pyx_v_s0;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":95
 * 
 *     s0 = sin(x)/x
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return s0
 *     s1 = (s0 - cos(x))/x
 */
  }

  /* "_spherical_bessel.pxd":97
 *     if n == 0:
 *         return s0
 *     s1 = (s0 - cos(x))/x             # <<<<<<<<<<<<<<
 *     if n == 1:
 *         return s1
 */
  __pyx_v_s1 = ((__pyx_v_s0 - cos(__pyx_v_x)) / __pyx_v_x);

  /* "_spherical_bessel.pxd":98
 *         return s0
 *     s1 = (s0 - cos(x))/x
 *     if n == 1:             # <<<<<<<<<<<<<<
 *         return s1
 * 
 */
  __pyx_t_1 = ((__pyx_v_n == 1) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":99
 *     s1 = (s0 - cos(x))/x
 *     if n == 1:
 *         return s1             # <<<<<<<<<<<<<<
 * 
 *     for idx in range(n - 1):
 */
    __pyx_r = __pyx_v_s1;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":98
 *         return s0
 *     s1 = (s0 - cos(x))/x
 *     if n == 1:             # <<<<<<<<<<<<<<
 *         return s1
 * 
 */
  }

  /* "_spherical_bessel.pxd":101
 *         return s1
 * 
 *     for idx in range(n - 1):             # <<<<<<<<<<<<<<
 *         sn = (2*idx + 3)*s1/x - s0
 *         s0 = s1
 */
  __pyx_t_3 = (__pyx_v_n - 1);
  __pyx_t_4 = __pyx_t_3;
  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
    __pyx_v_idx = __pyx_t_5;

    /* "_spherical_bessel.pxd":102
 * 
 *     for idx in range(n - 1):
 *         sn = (2*idx + 3)*s1/x - s0             # <<<<<<<<<<<<<<
 *         s0 = s1
 *         s1 = sn
 */
    __pyx_v_sn = (((((2 * __pyx_v_idx) + 3) * __pyx_v_s1) / __pyx_v_x) - __pyx_v_s0);

    /* "_spherical_bessel.pxd":103
 *     for idx in range(n - 1):
 *         sn = (2*idx + 3)*s1/x - s0
 *         s0 = s1             # <<<<<<<<<<<<<<
 *         s1 = sn
 *         if npy_isinf(sn):
 */
    __pyx_v_s0 = __pyx_v_s1;

    /* "_spherical_bessel.pxd":104
 *         sn = (2*idx + 3)*s1/x - s0
 *         s0 = s1
 *         s1 = sn             # <<<<<<<<<<<<<<
 *         if npy_isinf(sn):
 *             # Overflow occurred already: terminate recurrence.
 */
    __pyx_v_s1 = __pyx_v_sn;

    /* "_spherical_bessel.pxd":105
 *         s0 = s1
 *         s1 = sn
 *         if npy_isinf(sn):             # <<<<<<<<<<<<<<
 *             # Overflow occurred already: terminate recurrence.
 *             return sn
 */
    __pyx_t_1 = (npy_isinf(__pyx_v_sn) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":107
 *         if npy_isinf(sn):
 *             # Overflow occurred already: terminate recurrence.
 *             return sn             # <<<<<<<<<<<<<<
 * 
 *     return sn
 */
      __pyx_r = __pyx_v_sn;
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":105
 *         s0 = s1
 *         s1 = sn
 *         if npy_isinf(sn):             # <<<<<<<<<<<<<<
 *             # Overflow occurred already: terminate recurrence.
 *             return sn
 */
    }
  }

  /* "_spherical_bessel.pxd":109
 *             return sn
 * 
 *     return sn             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_sn;
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":74
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_jn_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double s0, s1, sn
 *     cdef int idx
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":113
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_jn_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double complex out
 *     if zisnan(z):
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_v_out;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_spherical_bessel.pxd":115
 * cdef inline double complex spherical_jn_complex(long n, double complex z) nogil:
 *     cdef double complex out
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  __pyx_t_1 = (__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":116
 *     cdef double complex out
 *     if zisnan(z):
 *         return z             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_z;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":115
 * cdef inline double complex spherical_jn_complex(long n, double complex z) nogil:
 *     cdef double complex out
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":117
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":118
 *         return z
 *     if n < 0:
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if z.real == inf or z.real == -inf:
 */
    sf_error(((char *)"spherical_jn"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":119
 *     if n < 0:
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if z.real == inf or z.real == -inf:
 *         # https://dlmf.nist.gov/10.52.E3
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":117
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":120
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z.real == inf or z.real == -inf:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) == NPY_INFINITY) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) == (-NPY_INFINITY)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":122
 *     if z.real == inf or z.real == -inf:
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         else:
 */
    __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":123
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:
 *             return 0             # <<<<<<<<<<<<<<
 *         else:
 *             return (1+1j)*inf
 */
      __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":122
 *     if z.real == inf or z.real == -inf:
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":125
 *             return 0
 *         else:
 *             return (1+1j)*inf             # <<<<<<<<<<<<<<
 *     if z.real == 0 and z.imag == 0:
 *         if n == 0:
 */
    /*else*/ {
      __pyx_r = __Pyx_c_prod_double(__Pyx_c_sum_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_t_double_complex_from_parts(0, 1.0)), __pyx_t_double_complex_from_parts(NPY_INFINITY, 0));
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":120
 *         sf_error.error("spherical_jn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z.real == inf or z.real == -inf:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:
 */
  }

  /* "_spherical_bessel.pxd":126
 *         else:
 *             return (1+1j)*inf
 *     if z.real == 0 and z.imag == 0:             # <<<<<<<<<<<<<<
 *         if n == 0:
 *             return 1
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L10_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L10_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":127
 *             return (1+1j)*inf
 *     if z.real == 0 and z.imag == 0:
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_n == 0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":128
 *     if z.real == 0 and z.imag == 0:
 *         if n == 0:
 *             return 1             # <<<<<<<<<<<<<<
 *         else:
 *             return 0
 */
      __pyx_r = __pyx_t_double_complex_from_parts(1, 0);
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":127
 *             return (1+1j)*inf
 *     if z.real == 0 and z.imag == 0:
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":130
 *             return 1
 *         else:
 *             return 0             # <<<<<<<<<<<<<<
 * 
 *     out = zsqrt(M_PI_2/z)*cbesj(n + 0.5, z)
 */
    /*else*/ {
      __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":126
 *         else:
 *             return (1+1j)*inf
 *     if z.real == 0 and z.imag == 0:             # <<<<<<<<<<<<<<
 *         if n == 0:
 *             return 1
 */
  }

  /* "_spherical_bessel.pxd":132
 *             return 0
 * 
 *     out = zsqrt(M_PI_2/z)*cbesj(n + 0.5, z)             # <<<<<<<<<<<<<<
 * 
 *     if z.imag == 0:
 */
  __pyx_v_out = __Pyx_c_prod_double(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__Pyx_c_quot_double(__pyx_t_double_complex_from_parts(M_PI_2, 0), __pyx_v_z)), __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesj((__pyx_v_n + 0.5), __pyx_v_z));

  /* "_spherical_bessel.pxd":134
 *     out = zsqrt(M_PI_2/z)*cbesj(n + 0.5, z)
 * 
 *     if z.imag == 0:             # <<<<<<<<<<<<<<
 *         # Small imaginary part is spurious
 *         return out.real
 */
  __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":136
 *     if z.imag == 0:
 *         # Small imaginary part is spurious
 *         return out.real             # <<<<<<<<<<<<<<
 *     else:
 *         return out
 */
    __pyx_r = __pyx_t_double_complex_from_parts(__Pyx_CREAL(__pyx_v_out), 0);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":134
 *     out = zsqrt(M_PI_2/z)*cbesj(n + 0.5, z)
 * 
 *     if z.imag == 0:             # <<<<<<<<<<<<<<
 *         # Small imaginary part is spurious
 *         return out.real
 */
  }

  /* "_spherical_bessel.pxd":138
 *         return out.real
 *     else:
 *         return out             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_r = __pyx_v_out;
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":113
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_jn_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double complex out
 *     if zisnan(z):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":142
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_yn_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double s0, s1, sn
 *     cdef int idx
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_real(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_v_s0;
  double __pyx_v_s1;
  double __pyx_v_sn;
  int __pyx_v_idx;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;
  int __pyx_t_5;

  /* "_spherical_bessel.pxd":146
 *     cdef int idx
 * 
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 *     if n < 0:
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_x) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":147
 * 
 *     if npy_isnan(x):
 *         return x             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_x;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":146
 *     cdef int idx
 * 
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":148
 *     if npy_isnan(x):
 *         return x
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":149
 *         return x
 *     if n < 0:
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if x < 0:
 */
    sf_error(((char *)"spherical_yn"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":150
 *     if n < 0:
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if x < 0:
 *         return (-1)**(n+1)*spherical_yn_real(n, -x)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":148
 *     if npy_isnan(x):
 *         return x
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":151
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if x < 0:             # <<<<<<<<<<<<<<
 *         return (-1)**(n+1)*spherical_yn_real(n, -x)
 *     if x == inf or x == -inf:
 */
  __pyx_t_1 = ((__pyx_v_x < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":152
 *         return nan
 *     if x < 0:
 *         return (-1)**(n+1)*spherical_yn_real(n, -x)             # <<<<<<<<<<<<<<
 *     if x == inf or x == -inf:
 *         return 0
 */
    __pyx_r = (__Pyx_pow_long(-1L, (__pyx_v_n + 1)) * __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_real(__pyx_v_n, (-__pyx_v_x)));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":151
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if x < 0:             # <<<<<<<<<<<<<<
 *         return (-1)**(n+1)*spherical_yn_real(n, -x)
 *     if x == inf or x == -inf:
 */
  }

  /* "_spherical_bessel.pxd":153
 *     if x < 0:
 *         return (-1)**(n+1)*spherical_yn_real(n, -x)
 *     if x == inf or x == -inf:             # <<<<<<<<<<<<<<
 *         return 0
 *     if x == 0:
 */
  __pyx_t_2 = ((__pyx_v_x == NPY_INFINITY) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_x == (-NPY_INFINITY)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":154
 *         return (-1)**(n+1)*spherical_yn_real(n, -x)
 *     if x == inf or x == -inf:
 *         return 0             # <<<<<<<<<<<<<<
 *     if x == 0:
 *         return -inf
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":153
 *     if x < 0:
 *         return (-1)**(n+1)*spherical_yn_real(n, -x)
 *     if x == inf or x == -inf:             # <<<<<<<<<<<<<<
 *         return 0
 *     if x == 0:
 */
  }

  /* "_spherical_bessel.pxd":155
 *     if x == inf or x == -inf:
 *         return 0
 *     if x == 0:             # <<<<<<<<<<<<<<
 *         return -inf
 * 
 */
  __pyx_t_1 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":156
 *         return 0
 *     if x == 0:
 *         return -inf             # <<<<<<<<<<<<<<
 * 
 *     s0 = -cos(x)/x
 */
    __pyx_r = (-NPY_INFINITY);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":155
 *     if x == inf or x == -inf:
 *         return 0
 *     if x == 0:             # <<<<<<<<<<<<<<
 *         return -inf
 * 
 */
  }

  /* "_spherical_bessel.pxd":158
 *         return -inf
 * 
 *     s0 = -cos(x)/x             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return s0
 */
  __pyx_v_s0 = ((-cos(__pyx_v_x)) / __pyx_v_x);

  /* "_spherical_bessel.pxd":159
 * 
 *     s0 = -cos(x)/x
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return s0
 *     s1 = (s0 - sin(x))/x
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":160
 *     s0 = -cos(x)/x
 *     if n == 0:
 *         return s0             # <<<<<<<<<<<<<<
 *     s1 = (s0 - sin(x))/x
 *     if n == 1:
 */
    __pyx_r = __pyx_v_s0;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":159
 * 
 *     s0 = -cos(x)/x
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return s0
 *     s1 = (s0 - sin(x))/x
 */
  }

  /* "_spherical_bessel.pxd":161
 *     if n == 0:
 *         return s0
 *     s1 = (s0 - sin(x))/x             # <<<<<<<<<<<<<<
 *     if n == 1:
 *         return s1
 */
  __pyx_v_s1 = ((__pyx_v_s0 - sin(__pyx_v_x)) / __pyx_v_x);

  /* "_spherical_bessel.pxd":162
 *         return s0
 *     s1 = (s0 - sin(x))/x
 *     if n == 1:             # <<<<<<<<<<<<<<
 *         return s1
 * 
 */
  __pyx_t_1 = ((__pyx_v_n == 1) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":163
 *     s1 = (s0 - sin(x))/x
 *     if n == 1:
 *         return s1             # <<<<<<<<<<<<<<
 * 
 *     for idx in range(n - 1):
 */
    __pyx_r = __pyx_v_s1;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":162
 *         return s0
 *     s1 = (s0 - sin(x))/x
 *     if n == 1:             # <<<<<<<<<<<<<<
 *         return s1
 * 
 */
  }

  /* "_spherical_bessel.pxd":165
 *         return s1
 * 
 *     for idx in range(n - 1):             # <<<<<<<<<<<<<<
 *         sn = (2*idx + 3)*s1/x - s0
 *         s0 = s1
 */
  __pyx_t_3 = (__pyx_v_n - 1);
  __pyx_t_4 = __pyx_t_3;
  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
    __pyx_v_idx = __pyx_t_5;

    /* "_spherical_bessel.pxd":166
 * 
 *     for idx in range(n - 1):
 *         sn = (2*idx + 3)*s1/x - s0             # <<<<<<<<<<<<<<
 *         s0 = s1
 *         s1 = sn
 */
    __pyx_v_sn = (((((2 * __pyx_v_idx) + 3) * __pyx_v_s1) / __pyx_v_x) - __pyx_v_s0);

    /* "_spherical_bessel.pxd":167
 *     for idx in range(n - 1):
 *         sn = (2*idx + 3)*s1/x - s0
 *         s0 = s1             # <<<<<<<<<<<<<<
 *         s1 = sn
 *         if npy_isinf(sn):
 */
    __pyx_v_s0 = __pyx_v_s1;

    /* "_spherical_bessel.pxd":168
 *         sn = (2*idx + 3)*s1/x - s0
 *         s0 = s1
 *         s1 = sn             # <<<<<<<<<<<<<<
 *         if npy_isinf(sn):
 *             # Overflow occurred already: terminate recurrence.
 */
    __pyx_v_s1 = __pyx_v_sn;

    /* "_spherical_bessel.pxd":169
 *         s0 = s1
 *         s1 = sn
 *         if npy_isinf(sn):             # <<<<<<<<<<<<<<
 *             # Overflow occurred already: terminate recurrence.
 *             return sn
 */
    __pyx_t_1 = (npy_isinf(__pyx_v_sn) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":171
 *         if npy_isinf(sn):
 *             # Overflow occurred already: terminate recurrence.
 *             return sn             # <<<<<<<<<<<<<<
 * 
 *     return sn
 */
      __pyx_r = __pyx_v_sn;
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":169
 *         s0 = s1
 *         s1 = sn
 *         if npy_isinf(sn):             # <<<<<<<<<<<<<<
 *             # Overflow occurred already: terminate recurrence.
 *             return sn
 */
    }
  }

  /* "_spherical_bessel.pxd":173
 *             return sn
 * 
 *     return sn             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_sn;
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":142
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_yn_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double s0, s1, sn
 *     cdef int idx
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":177
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_yn_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if zisnan(z):
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_spherical_bessel.pxd":179
 * cdef inline double complex spherical_yn_complex(long n, double complex z) nogil:
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  __pyx_t_1 = (__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":180
 * 
 *     if zisnan(z):
 *         return z             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_z;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":179
 * cdef inline double complex spherical_yn_complex(long n, double complex z) nogil:
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":181
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":182
 *         return z
 *     if n < 0:
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if z.real == 0 and z.imag == 0:
 */
    sf_error(((char *)"spherical_yn"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":183
 *     if n < 0:
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if z.real == 0 and z.imag == 0:
 *         # https://dlmf.nist.gov/10.52.E2
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":181
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":184
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z.real == 0 and z.imag == 0:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E2
 *         return nan
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":186
 *     if z.real == 0 and z.imag == 0:
 *         # https://dlmf.nist.gov/10.52.E2
 *         return nan             # <<<<<<<<<<<<<<
 *     if z.real == inf or z.real == -inf:
 *         # https://dlmf.nist.gov/10.52.E3
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":184
 *         sf_error.error("spherical_yn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z.real == 0 and z.imag == 0:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E2
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":187
 *         # https://dlmf.nist.gov/10.52.E2
 *         return nan
 *     if z.real == inf or z.real == -inf:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) == NPY_INFINITY) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L9_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) == (-NPY_INFINITY)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L9_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":189
 *     if z.real == inf or z.real == -inf:
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         else:
 */
    __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":190
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:
 *             return 0             # <<<<<<<<<<<<<<
 *         else:
 *             return (1+1j)*inf
 */
      __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":189
 *     if z.real == inf or z.real == -inf:
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":192
 *             return 0
 *         else:
 *             return (1+1j)*inf             # <<<<<<<<<<<<<<
 * 
 *     return zsqrt(M_PI_2/z)*cbesy(n + 0.5, z)
 */
    /*else*/ {
      __pyx_r = __Pyx_c_prod_double(__Pyx_c_sum_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_t_double_complex_from_parts(0, 1.0)), __pyx_t_double_complex_from_parts(NPY_INFINITY, 0));
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":187
 *         # https://dlmf.nist.gov/10.52.E2
 *         return nan
 *     if z.real == inf or z.real == -inf:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E3
 *         if z.imag == 0:
 */
  }

  /* "_spherical_bessel.pxd":194
 *             return (1+1j)*inf
 * 
 *     return zsqrt(M_PI_2/z)*cbesy(n + 0.5, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__Pyx_c_quot_double(__pyx_t_double_complex_from_parts(M_PI_2, 0), __pyx_v_z)), __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesy((__pyx_v_n + 0.5), __pyx_v_z));
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":177
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_yn_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if zisnan(z):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":198
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_in_real(long n, double z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if npy_isnan(z):
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_real(long __pyx_v_n, double __pyx_v_z) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":200
 * cdef inline double spherical_in_real(long n, double z) nogil:
 * 
 *     if npy_isnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":201
 * 
 *     if npy_isnan(z):
 *         return z             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_z;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":200
 * cdef inline double spherical_in_real(long n, double z) nogil:
 * 
 *     if npy_isnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":202
 *     if npy_isnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":203
 *         return z
 *     if n < 0:
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if z == 0:
 */
    sf_error(((char *)"spherical_in"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":204
 *     if n < 0:
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if z == 0:
 *         # https://dlmf.nist.gov/10.52.E1
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":202
 *     if npy_isnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":205
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:
 */
  __pyx_t_1 = ((__pyx_v_z == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":207
 *     if z == 0:
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_n == 0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":208
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:
 *             return 1             # <<<<<<<<<<<<<<
 *         else:
 *             return 0
 */
      __pyx_r = 1.0;
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":207
 *     if z == 0:
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":210
 *             return 1
 *         else:
 *             return 0             # <<<<<<<<<<<<<<
 *     if npy_isinf(z):
 *         # https://dlmf.nist.gov/10.49.E8
 */
    /*else*/ {
      __pyx_r = 0.0;
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":205
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:
 */
  }

  /* "_spherical_bessel.pxd":211
 *         else:
 *             return 0
 *     if npy_isinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.49.E8
 *         if z == -inf:
 */
  __pyx_t_1 = (npy_isinf(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":213
 *     if npy_isinf(z):
 *         # https://dlmf.nist.gov/10.49.E8
 *         if z == -inf:             # <<<<<<<<<<<<<<
 *             return (-1)**n*inf
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_z == (-NPY_INFINITY)) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":214
 *         # https://dlmf.nist.gov/10.49.E8
 *         if z == -inf:
 *             return (-1)**n*inf             # <<<<<<<<<<<<<<
 *         else:
 *             return inf
 */
      __pyx_r = (__Pyx_pow_long(-1L, __pyx_v_n) * NPY_INFINITY);
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":213
 *     if npy_isinf(z):
 *         # https://dlmf.nist.gov/10.49.E8
 *         if z == -inf:             # <<<<<<<<<<<<<<
 *             return (-1)**n*inf
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":216
 *             return (-1)**n*inf
 *         else:
 *             return inf             # <<<<<<<<<<<<<<
 * 
 *     return sqrt(M_PI_2/z)*iv(n + 0.5, z)
 */
    /*else*/ {
      __pyx_r = NPY_INFINITY;
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":211
 *         else:
 *             return 0
 *     if npy_isinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.49.E8
 *         if z == -inf:
 */
  }

  /* "_spherical_bessel.pxd":218
 *             return inf
 * 
 *     return sqrt(M_PI_2/z)*iv(n + 0.5, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = (sqrt((((double)M_PI_2) / __pyx_v_z)) * iv((__pyx_v_n + 0.5), __pyx_v_z));
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":198
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_in_real(long n, double z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if npy_isnan(z):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":222
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_in_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble s
 * 
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_s;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":225
 *     cdef npy_cdouble s
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  __pyx_t_1 = (__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":226
 * 
 *     if zisnan(z):
 *         return z             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_z;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":225
 *     cdef npy_cdouble s
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":227
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":228
 *         return z
 *     if n < 0:
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if zabs(z) == 0:
 */
    sf_error(((char *)"spherical_in"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":229
 *     if n < 0:
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if zabs(z) == 0:
 *         # https://dlmf.nist.gov/10.52.E1
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":227
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":230
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 *     if zabs(z) == 0:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":232
 *     if zabs(z) == 0:
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_n == 0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":233
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:
 *             return 1             # <<<<<<<<<<<<<<
 *         else:
 *             return 0
 */
      __pyx_r = __pyx_t_double_complex_from_parts(1, 0);
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":232
 *     if zabs(z) == 0:
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:             # <<<<<<<<<<<<<<
 *             return 1
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":235
 *             return 1
 *         else:
 *             return 0             # <<<<<<<<<<<<<<
 *     if zisinf(z):
 *         # https://dlmf.nist.gov/10.52.E5
 */
    /*else*/ {
      __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":230
 *         sf_error.error("spherical_in", sf_error.DOMAIN, NULL)
 *         return nan
 *     if zabs(z) == 0:             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E1
 *         if n == 0:
 */
  }

  /* "_spherical_bessel.pxd":236
 *         else:
 *             return 0
 *     if zisinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E5
 *         if z.imag == 0:
 */
  __pyx_t_1 = (__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisinf(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":238
 *     if zisinf(z):
 *         # https://dlmf.nist.gov/10.52.E5
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             if z.real == -inf:
 *                 return (-1)**n*inf
 */
    __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":239
 *         # https://dlmf.nist.gov/10.52.E5
 *         if z.imag == 0:
 *             if z.real == -inf:             # <<<<<<<<<<<<<<
 *                 return (-1)**n*inf
 *             else:
 */
      __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) == (-NPY_INFINITY)) != 0);
      if (__pyx_t_1) {

        /* "_spherical_bessel.pxd":240
 *         if z.imag == 0:
 *             if z.real == -inf:
 *                 return (-1)**n*inf             # <<<<<<<<<<<<<<
 *             else:
 *                 return inf
 */
        __pyx_r = __pyx_t_double_complex_from_parts((__Pyx_pow_long(-1L, __pyx_v_n) * NPY_INFINITY), 0);
        goto __pyx_L0;

        /* "_spherical_bessel.pxd":239
 *         # https://dlmf.nist.gov/10.52.E5
 *         if z.imag == 0:
 *             if z.real == -inf:             # <<<<<<<<<<<<<<
 *                 return (-1)**n*inf
 *             else:
 */
      }

      /* "_spherical_bessel.pxd":242
 *                 return (-1)**n*inf
 *             else:
 *                 return inf             # <<<<<<<<<<<<<<
 *         else:
 *             return nan
 */
      /*else*/ {
        __pyx_r = __pyx_t_double_complex_from_parts(NPY_INFINITY, 0);
        goto __pyx_L0;
      }

      /* "_spherical_bessel.pxd":238
 *     if zisinf(z):
 *         # https://dlmf.nist.gov/10.52.E5
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             if z.real == -inf:
 *                 return (-1)**n*inf
 */
    }

    /* "_spherical_bessel.pxd":244
 *                 return inf
 *         else:
 *             return nan             # <<<<<<<<<<<<<<
 * 
 *     s = cbesi_wrap(n + 0.5, npy_cdouble_from_double_complex(z))
 */
    /*else*/ {
      __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":236
 *         else:
 *             return 0
 *     if zisinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E5
 *         if z.imag == 0:
 */
  }

  /* "_spherical_bessel.pxd":246
 *             return nan
 * 
 *     s = cbesi_wrap(n + 0.5, npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *     return zsqrt(M_PI_2/z)*double_complex_from_npy_cdouble(s)
 * 
 */
  __pyx_v_s = cbesi_wrap((__pyx_v_n + 0.5), __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "_spherical_bessel.pxd":247
 * 
 *     s = cbesi_wrap(n + 0.5, npy_cdouble_from_double_complex(z))
 *     return zsqrt(M_PI_2/z)*double_complex_from_npy_cdouble(s)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__Pyx_c_quot_double(__pyx_t_double_complex_from_parts(M_PI_2, 0), __pyx_v_z)), __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_s));
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":222
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_in_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble s
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":251
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_kn_real(long n, double z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if npy_isnan(z):
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_real(long __pyx_v_n, double __pyx_v_z) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":253
 * cdef inline double spherical_kn_real(long n, double z) nogil:
 * 
 *     if npy_isnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":254
 * 
 *     if npy_isnan(z):
 *         return z             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_z;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":253
 * cdef inline double spherical_kn_real(long n, double z) nogil:
 * 
 *     if npy_isnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":255
 *     if npy_isnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":256
 *         return z
 *     if n < 0:
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if z == 0:
 */
    sf_error(((char *)"spherical_kn"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":257
 *     if n < 0:
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if z == 0:
 *         return inf
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":255
 *     if npy_isnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":258
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         return inf
 *     if npy_isinf(z):
 */
  __pyx_t_1 = ((__pyx_v_z == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":259
 *         return nan
 *     if z == 0:
 *         return inf             # <<<<<<<<<<<<<<
 *     if npy_isinf(z):
 *         # https://dlmf.nist.gov/10.52.E6
 */
    __pyx_r = NPY_INFINITY;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":258
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         return inf
 *     if npy_isinf(z):
 */
  }

  /* "_spherical_bessel.pxd":260
 *     if z == 0:
 *         return inf
 *     if npy_isinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z == inf:
 */
  __pyx_t_1 = (npy_isinf(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":262
 *     if npy_isinf(z):
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z == inf:             # <<<<<<<<<<<<<<
 *             return 0
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_z == NPY_INFINITY) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":263
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z == inf:
 *             return 0             # <<<<<<<<<<<<<<
 *         else:
 *             return -inf
 */
      __pyx_r = 0.0;
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":262
 *     if npy_isinf(z):
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z == inf:             # <<<<<<<<<<<<<<
 *             return 0
 *         else:
 */
    }

    /* "_spherical_bessel.pxd":265
 *             return 0
 *         else:
 *             return -inf             # <<<<<<<<<<<<<<
 * 
 *     return sqrt(M_PI_2/z)*cbesk(n + 0.5, z)
 */
    /*else*/ {
      __pyx_r = (-NPY_INFINITY);
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":260
 *     if z == 0:
 *         return inf
 *     if npy_isinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z == inf:
 */
  }

  /* "_spherical_bessel.pxd":267
 *             return -inf
 * 
 *     return sqrt(M_PI_2/z)*cbesk(n + 0.5, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = (sqrt((((double)M_PI_2) / __pyx_v_z)) * __pyx_fuse_0__pyx_f_5scipy_7special_17_spherical_bessel_cbesk((__pyx_v_n + 0.5), __pyx_v_z));
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":251
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_kn_real(long n, double z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if npy_isnan(z):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":271
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_kn_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if zisnan(z):
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":273
 * cdef inline double complex spherical_kn_complex(long n, double complex z) nogil:
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  __pyx_t_1 = (__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":274
 * 
 *     if zisnan(z):
 *         return z             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 */
    __pyx_r = __pyx_v_z;
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":273
 * cdef inline double complex spherical_kn_complex(long n, double complex z) nogil:
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return z
 *     if n < 0:
 */
  }

  /* "_spherical_bessel.pxd":275
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":276
 *         return z
 *     if n < 0:
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return nan
 *     if zabs(z) == 0:
 */
    sf_error(((char *)"spherical_kn"), SF_ERROR_DOMAIN, NULL);

    /* "_spherical_bessel.pxd":277
 *     if n < 0:
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan             # <<<<<<<<<<<<<<
 *     if zabs(z) == 0:
 *         return nan
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":275
 *     if zisnan(z):
 *         return z
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 */
  }

  /* "_spherical_bessel.pxd":278
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if zabs(z) == 0:             # <<<<<<<<<<<<<<
 *         return nan
 *     if zisinf(z):
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":279
 *         return nan
 *     if zabs(z) == 0:
 *         return nan             # <<<<<<<<<<<<<<
 *     if zisinf(z):
 *         # https://dlmf.nist.gov/10.52.E6
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":278
 *         sf_error.error("spherical_kn", sf_error.DOMAIN, NULL)
 *         return nan
 *     if zabs(z) == 0:             # <<<<<<<<<<<<<<
 *         return nan
 *     if zisinf(z):
 */
  }

  /* "_spherical_bessel.pxd":280
 *     if zabs(z) == 0:
 *         return nan
 *     if zisinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z.imag == 0:
 */
  __pyx_t_1 = (__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisinf(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":282
 *     if zisinf(z):
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             if z.real == inf:
 *                 return 0
 */
    __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":283
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z.imag == 0:
 *             if z.real == inf:             # <<<<<<<<<<<<<<
 *                 return 0
 *             else:
 */
      __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) == NPY_INFINITY) != 0);
      if (__pyx_t_1) {

        /* "_spherical_bessel.pxd":284
 *         if z.imag == 0:
 *             if z.real == inf:
 *                 return 0             # <<<<<<<<<<<<<<
 *             else:
 *                 return -inf
 */
        __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
        goto __pyx_L0;

        /* "_spherical_bessel.pxd":283
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z.imag == 0:
 *             if z.real == inf:             # <<<<<<<<<<<<<<
 *                 return 0
 *             else:
 */
      }

      /* "_spherical_bessel.pxd":286
 *                 return 0
 *             else:
 *                 return -inf             # <<<<<<<<<<<<<<
 *         else:
 *             return nan
 */
      /*else*/ {
        __pyx_r = __pyx_t_double_complex_from_parts((-NPY_INFINITY), 0);
        goto __pyx_L0;
      }

      /* "_spherical_bessel.pxd":282
 *     if zisinf(z):
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z.imag == 0:             # <<<<<<<<<<<<<<
 *             if z.real == inf:
 *                 return 0
 */
    }

    /* "_spherical_bessel.pxd":288
 *                 return -inf
 *         else:
 *             return nan             # <<<<<<<<<<<<<<
 * 
 *     return zsqrt(M_PI_2/z)*cbesk(n + 0.5, z)
 */
    /*else*/ {
      __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
      goto __pyx_L0;
    }

    /* "_spherical_bessel.pxd":280
 *     if zabs(z) == 0:
 *         return nan
 *     if zisinf(z):             # <<<<<<<<<<<<<<
 *         # https://dlmf.nist.gov/10.52.E6
 *         if z.imag == 0:
 */
  }

  /* "_spherical_bessel.pxd":290
 *             return nan
 * 
 *     return zsqrt(M_PI_2/z)*cbesk(n + 0.5, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__Pyx_c_quot_double(__pyx_t_double_complex_from_parts(M_PI_2, 0), __pyx_v_z)), __pyx_fuse_1__pyx_f_5scipy_7special_17_spherical_bessel_cbesk((__pyx_v_n + 0.5), __pyx_v_z));
  goto __pyx_L0;

  /* "_spherical_bessel.pxd":271
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_kn_complex(long n, double complex z) nogil:             # <<<<<<<<<<<<<<
 * 
 *     if zisnan(z):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":296
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_jn_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_jn_real(1, x)
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_d_real(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":297
 * @cython.cdivision(True)
 * cdef inline double spherical_jn_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_jn_real(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":298
 * cdef inline double spherical_jn_d_real(long n, double x) nogil:
 *     if n == 0:
 *         return -spherical_jn_real(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         if x == 0:
 */
    __pyx_r = (-__pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_real(1, __pyx_v_x));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":297
 * @cython.cdivision(True)
 * cdef inline double spherical_jn_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_jn_real(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":300
 *         return -spherical_jn_real(1, x)
 *     else:
 *         if x == 0:             # <<<<<<<<<<<<<<
 *             # DLMF 10.51.2 doesn't work, so use 10.51.1 to get the
 *             # exact value
 */
  /*else*/ {
    __pyx_t_1 = ((__pyx_v_x == 0.0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":303
 *             # DLMF 10.51.2 doesn't work, so use 10.51.1 to get the
 *             # exact value
 *             if n == 1:             # <<<<<<<<<<<<<<
 *                 return 1.0/3
 *             else:
 */
      __pyx_t_1 = ((__pyx_v_n == 1) != 0);
      if (__pyx_t_1) {

        /* "_spherical_bessel.pxd":304
 *             # exact value
 *             if n == 1:
 *                 return 1.0/3             # <<<<<<<<<<<<<<
 *             else:
 *                 return 0
 */
        __pyx_r = (1.0 / 3.0);
        goto __pyx_L0;

        /* "_spherical_bessel.pxd":303
 *             # DLMF 10.51.2 doesn't work, so use 10.51.1 to get the
 *             # exact value
 *             if n == 1:             # <<<<<<<<<<<<<<
 *                 return 1.0/3
 *             else:
 */
      }

      /* "_spherical_bessel.pxd":306
 *                 return 1.0/3
 *             else:
 *                 return 0             # <<<<<<<<<<<<<<
 *         # DLMF 10.51.2
 *         return (spherical_jn_real(n - 1, x) -
 */
      /*else*/ {
        __pyx_r = 0.0;
        goto __pyx_L0;
      }

      /* "_spherical_bessel.pxd":300
 *         return -spherical_jn_real(1, x)
 *     else:
 *         if x == 0:             # <<<<<<<<<<<<<<
 *             # DLMF 10.51.2 doesn't work, so use 10.51.1 to get the
 *             # exact value
 */
    }

    /* "_spherical_bessel.pxd":308
 *                 return 0
 *         # DLMF 10.51.2
 *         return (spherical_jn_real(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_jn_real(n, x)/x)
 * 
 */
    __pyx_r = (__pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_real((__pyx_v_n - 1), __pyx_v_x) - (((__pyx_v_n + 1) * __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_real(__pyx_v_n, __pyx_v_x)) / __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":296
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_jn_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_jn_real(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":313
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_jn_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_jn_complex(1, x)
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_d_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":314
 * @cython.cdivision(True)
 * cdef inline double complex spherical_jn_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_jn_complex(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":315
 * cdef inline double complex spherical_jn_d_complex(long n, double complex x) nogil:
 *     if n == 0:
 *         return -spherical_jn_complex(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         return (spherical_jn_complex(n - 1, x) -
 */
    __pyx_r = __Pyx_c_neg_double(__pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_complex(1, __pyx_v_x));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":314
 * @cython.cdivision(True)
 * cdef inline double complex spherical_jn_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_jn_complex(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":317
 *         return -spherical_jn_complex(1, x)
 *     else:
 *         return (spherical_jn_complex(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_jn_complex(n, x)/x)
 * 
 */
  /*else*/ {

    /* "_spherical_bessel.pxd":318
 *     else:
 *         return (spherical_jn_complex(n - 1, x) -
 *                 (n + 1)*spherical_jn_complex(n, x)/x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_r = __Pyx_c_diff_double(__pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_complex((__pyx_v_n - 1), __pyx_v_x), __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts((__pyx_v_n + 1), 0), __pyx_f_5scipy_7special_17_spherical_bessel_spherical_jn_complex(__pyx_v_n, __pyx_v_x)), __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":313
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_jn_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_jn_complex(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":322
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_yn_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_yn_real(1, x)
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_d_real(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":323
 * @cython.cdivision(True)
 * cdef inline double spherical_yn_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_yn_real(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":324
 * cdef inline double spherical_yn_d_real(long n, double x) nogil:
 *     if n == 0:
 *         return -spherical_yn_real(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         return (spherical_yn_real(n - 1, x) -
 */
    __pyx_r = (-__pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_real(1, __pyx_v_x));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":323
 * @cython.cdivision(True)
 * cdef inline double spherical_yn_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_yn_real(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":326
 *         return -spherical_yn_real(1, x)
 *     else:
 *         return (spherical_yn_real(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_yn_real(n, x)/x)
 * 
 */
  /*else*/ {

    /* "_spherical_bessel.pxd":327
 *     else:
 *         return (spherical_yn_real(n - 1, x) -
 *                 (n + 1)*spherical_yn_real(n, x)/x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_r = (__pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_real((__pyx_v_n - 1), __pyx_v_x) - (((__pyx_v_n + 1) * __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_real(__pyx_v_n, __pyx_v_x)) / __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":322
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_yn_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_yn_real(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":331
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_yn_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_yn_complex(1, x)
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_d_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":332
 * @cython.cdivision(True)
 * cdef inline double complex spherical_yn_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_yn_complex(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":333
 * cdef inline double complex spherical_yn_d_complex(long n, double complex x) nogil:
 *     if n == 0:
 *         return -spherical_yn_complex(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         return (spherical_yn_complex(n - 1, x) -
 */
    __pyx_r = __Pyx_c_neg_double(__pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_complex(1, __pyx_v_x));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":332
 * @cython.cdivision(True)
 * cdef inline double complex spherical_yn_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_yn_complex(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":335
 *         return -spherical_yn_complex(1, x)
 *     else:
 *         return (spherical_yn_complex(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_yn_complex(n, x)/x)
 * 
 */
  /*else*/ {

    /* "_spherical_bessel.pxd":336
 *     else:
 *         return (spherical_yn_complex(n - 1, x) -
 *                 (n + 1)*spherical_yn_complex(n, x)/x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_r = __Pyx_c_diff_double(__pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_complex((__pyx_v_n - 1), __pyx_v_x), __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts((__pyx_v_n + 1), 0), __pyx_f_5scipy_7special_17_spherical_bessel_spherical_yn_complex(__pyx_v_n, __pyx_v_x)), __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":331
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_yn_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_yn_complex(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":340
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_in_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return spherical_in_real(1, x)
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_d_real(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":341
 * @cython.cdivision(True)
 * cdef inline double spherical_in_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return spherical_in_real(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":342
 * cdef inline double spherical_in_d_real(long n, double x) nogil:
 *     if n == 0:
 *         return spherical_in_real(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         if x == 0:
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_real(1, __pyx_v_x);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":341
 * @cython.cdivision(True)
 * cdef inline double spherical_in_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return spherical_in_real(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":344
 *         return spherical_in_real(1, x)
 *     else:
 *         if x == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         return (spherical_in_real(n - 1, x) -
 */
  /*else*/ {
    __pyx_t_1 = ((__pyx_v_x == 0.0) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":345
 *     else:
 *         if x == 0:
 *             return 0             # <<<<<<<<<<<<<<
 *         return (spherical_in_real(n - 1, x) -
 *                 (n + 1)*spherical_in_real(n, x)/x)
 */
      __pyx_r = 0.0;
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":344
 *         return spherical_in_real(1, x)
 *     else:
 *         if x == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         return (spherical_in_real(n - 1, x) -
 */
    }

    /* "_spherical_bessel.pxd":346
 *         if x == 0:
 *             return 0
 *         return (spherical_in_real(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_in_real(n, x)/x)
 * 
 */
    __pyx_r = (__pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_real((__pyx_v_n - 1), __pyx_v_x) - (((__pyx_v_n + 1) * __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_real(__pyx_v_n, __pyx_v_x)) / __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":340
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_in_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return spherical_in_real(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":351
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_in_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return spherical_in_complex(1, x)
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_d_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":352
 * @cython.cdivision(True)
 * cdef inline double complex spherical_in_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return spherical_in_complex(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":353
 * cdef inline double complex spherical_in_d_complex(long n, double complex x) nogil:
 *     if n == 0:
 *         return spherical_in_complex(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         if x == 0:
 */
    __pyx_r = __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_complex(1, __pyx_v_x);
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":352
 * @cython.cdivision(True)
 * cdef inline double complex spherical_in_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return spherical_in_complex(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":355
 *         return spherical_in_complex(1, x)
 *     else:
 *         if x == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         return (spherical_in_complex(n - 1, x) -
 */
  /*else*/ {
    __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_x, __pyx_t_double_complex_from_parts(0, 0))) != 0);
    if (__pyx_t_1) {

      /* "_spherical_bessel.pxd":356
 *     else:
 *         if x == 0:
 *             return 0             # <<<<<<<<<<<<<<
 *         return (spherical_in_complex(n - 1, x) -
 *                 (n + 1)*spherical_in_complex(n, x)/x)
 */
      __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
      goto __pyx_L0;

      /* "_spherical_bessel.pxd":355
 *         return spherical_in_complex(1, x)
 *     else:
 *         if x == 0:             # <<<<<<<<<<<<<<
 *             return 0
 *         return (spherical_in_complex(n - 1, x) -
 */
    }

    /* "_spherical_bessel.pxd":357
 *         if x == 0:
 *             return 0
 *         return (spherical_in_complex(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_in_complex(n, x)/x)
 * 
 */
    __pyx_r = __Pyx_c_diff_double(__pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_complex((__pyx_v_n - 1), __pyx_v_x), __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts((__pyx_v_n + 1), 0), __pyx_f_5scipy_7special_17_spherical_bessel_spherical_in_complex(__pyx_v_n, __pyx_v_x)), __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":351
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_in_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return spherical_in_complex(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":362
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_kn_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_kn_real(1, x)
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_d_real(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":363
 * @cython.cdivision(True)
 * cdef inline double spherical_kn_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_kn_real(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":364
 * cdef inline double spherical_kn_d_real(long n, double x) nogil:
 *     if n == 0:
 *         return -spherical_kn_real(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         return (-spherical_kn_real(n - 1, x) -
 */
    __pyx_r = (-__pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_real(1, __pyx_v_x));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":363
 * @cython.cdivision(True)
 * cdef inline double spherical_kn_d_real(long n, double x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_kn_real(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":366
 *         return -spherical_kn_real(1, x)
 *     else:
 *         return (-spherical_kn_real(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_kn_real(n, x)/x)
 * 
 */
  /*else*/ {

    /* "_spherical_bessel.pxd":367
 *     else:
 *         return (-spherical_kn_real(n - 1, x) -
 *                 (n + 1)*spherical_kn_real(n, x)/x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_r = ((-__pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_real((__pyx_v_n - 1), __pyx_v_x)) - (((__pyx_v_n + 1) * __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_real(__pyx_v_n, __pyx_v_x)) / __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":362
 * 
 * @cython.cdivision(True)
 * cdef inline double spherical_kn_d_real(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_kn_real(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spherical_bessel.pxd":371
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_kn_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_kn_complex(1, x)
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_d_complex(long __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "_spherical_bessel.pxd":372
 * @cython.cdivision(True)
 * cdef inline double complex spherical_kn_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_kn_complex(1, x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "_spherical_bessel.pxd":373
 * cdef inline double complex spherical_kn_d_complex(long n, double complex x) nogil:
 *     if n == 0:
 *         return -spherical_kn_complex(1, x)             # <<<<<<<<<<<<<<
 *     else:
 *         return (-spherical_kn_complex(n - 1, x) -
 */
    __pyx_r = __Pyx_c_neg_double(__pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_complex(1, __pyx_v_x));
    goto __pyx_L0;

    /* "_spherical_bessel.pxd":372
 * @cython.cdivision(True)
 * cdef inline double complex spherical_kn_d_complex(long n, double complex x) nogil:
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return -spherical_kn_complex(1, x)
 *     else:
 */
  }

  /* "_spherical_bessel.pxd":375
 *         return -spherical_kn_complex(1, x)
 *     else:
 *         return (-spherical_kn_complex(n - 1, x) -             # <<<<<<<<<<<<<<
 *                 (n + 1)*spherical_kn_complex(n, x)/x)
 */
  /*else*/ {

    /* "_spherical_bessel.pxd":376
 *     else:
 *         return (-spherical_kn_complex(n - 1, x) -
 *                 (n + 1)*spherical_kn_complex(n, x)/x)             # <<<<<<<<<<<<<<
 */
    __pyx_r = __Pyx_c_diff_double(__Pyx_c_neg_double(__pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_complex((__pyx_v_n - 1), __pyx_v_x)), __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts((__pyx_v_n + 1), 0), __pyx_f_5scipy_7special_17_spherical_bessel_spherical_kn_complex(__pyx_v_n, __pyx_v_x)), __pyx_v_x));
    goto __pyx_L0;
  }

  /* "_spherical_bessel.pxd":371
 * 
 * @cython.cdivision(True)
 * cdef inline double complex spherical_kn_d_complex(long n, double complex x) nogil:             # <<<<<<<<<<<<<<
 *     if n == 0:
 *         return -spherical_kn_complex(1, x)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_agm.pxd":14
 * 
 * 
 * cdef inline double _agm_iter(double a, double b) nogil:             # <<<<<<<<<<<<<<
 *     # Arithmetic-geometric mean, iterative implementation
 *     # a and b must be positive (not zero, not nan).
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_4_agm__agm_iter(double __pyx_v_a, double __pyx_v_b) {
  double __pyx_v_amean;
  double __pyx_v_gmean;
  int __pyx_v_count;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_agm.pxd":20
 *     cdef double amean, gmean
 * 
 *     cdef int count = 20             # <<<<<<<<<<<<<<
 *     amean = 0.5*a + 0.5*b
 *     while (count > 0) and (amean != a and amean != b):
 */
  __pyx_v_count = 20;

  /* "_agm.pxd":21
 * 
 *     cdef int count = 20
 *     amean = 0.5*a + 0.5*b             # <<<<<<<<<<<<<<
 *     while (count > 0) and (amean != a and amean != b):
 *         gmean = sqrt(a)*sqrt(b)
 */
  __pyx_v_amean = ((0.5 * __pyx_v_a) + (0.5 * __pyx_v_b));

  /* "_agm.pxd":22
 *     cdef int count = 20
 *     amean = 0.5*a + 0.5*b
 *     while (count > 0) and (amean != a and amean != b):             # <<<<<<<<<<<<<<
 *         gmean = sqrt(a)*sqrt(b)
 *         a = amean
 */
  while (1) {
    __pyx_t_2 = ((__pyx_v_count > 0) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_amean != __pyx_v_a) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_amean != __pyx_v_b) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;
    if (!__pyx_t_1) break;

    /* "_agm.pxd":23
 *     amean = 0.5*a + 0.5*b
 *     while (count > 0) and (amean != a and amean != b):
 *         gmean = sqrt(a)*sqrt(b)             # <<<<<<<<<<<<<<
 *         a = amean
 *         b = gmean
 */
    __pyx_v_gmean = (sqrt(__pyx_v_a) * sqrt(__pyx_v_b));

    /* "_agm.pxd":24
 *     while (count > 0) and (amean != a and amean != b):
 *         gmean = sqrt(a)*sqrt(b)
 *         a = amean             # <<<<<<<<<<<<<<
 *         b = gmean
 *         amean = 0.5*a + 0.5*b
 */
    __pyx_v_a = __pyx_v_amean;

    /* "_agm.pxd":25
 *         gmean = sqrt(a)*sqrt(b)
 *         a = amean
 *         b = gmean             # <<<<<<<<<<<<<<
 *         amean = 0.5*a + 0.5*b
 *         count -= 1
 */
    __pyx_v_b = __pyx_v_gmean;

    /* "_agm.pxd":26
 *         a = amean
 *         b = gmean
 *         amean = 0.5*a + 0.5*b             # <<<<<<<<<<<<<<
 *         count -= 1
 *     return amean
 */
    __pyx_v_amean = ((0.5 * __pyx_v_a) + (0.5 * __pyx_v_b));

    /* "_agm.pxd":27
 *         b = gmean
 *         amean = 0.5*a + 0.5*b
 *         count -= 1             # <<<<<<<<<<<<<<
 *     return amean
 * 
 */
    __pyx_v_count = (__pyx_v_count - 1);
  }

  /* "_agm.pxd":28
 *         amean = 0.5*a + 0.5*b
 *         count -= 1
 *     return amean             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_amean;
  goto __pyx_L0;

  /* "_agm.pxd":14
 * 
 * 
 * cdef inline double _agm_iter(double a, double b) nogil:             # <<<<<<<<<<<<<<
 *     # Arithmetic-geometric mean, iterative implementation
 *     # a and b must be positive (not zero, not nan).
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_agm.pxd":32
 * 
 * @cython.cdivision(True)
 * cdef inline double agm(double a, double b) nogil:             # <<<<<<<<<<<<<<
 *     # Arithmetic-geometric mean
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_4_agm_agm(double __pyx_v_a, double __pyx_v_b) {
  double __pyx_v_sqrthalfmax;
  double __pyx_v_invsqrthalfmax;
  double __pyx_v_e;
  int __pyx_v_sgn;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;

  /* "_agm.pxd":37
 *     # sqrthalfmax is sqrt(np.finfo(1.0).max/2)
 *     # invsqrthalfmax is 1/sqrthalfmax
 *     cdef double sqrthalfmax = 9.480751908109176e+153             # <<<<<<<<<<<<<<
 *     cdef double invsqrthalfmax = 1.0547686614863e-154
 * 
 */
  __pyx_v_sqrthalfmax = 9.480751908109176e+153;

  /* "_agm.pxd":38
 *     # invsqrthalfmax is 1/sqrthalfmax
 *     cdef double sqrthalfmax = 9.480751908109176e+153
 *     cdef double invsqrthalfmax = 1.0547686614863e-154             # <<<<<<<<<<<<<<
 * 
 *     cdef double e
 */
  __pyx_v_invsqrthalfmax = 1.0547686614863e-154;

  /* "_agm.pxd":43
 *     cdef int sgn
 * 
 *     if sc_isnan(a) or sc_isnan(b):             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  __pyx_t_2 = (sc_isnan(__pyx_v_a) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (sc_isnan(__pyx_v_b) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_agm.pxd":44
 * 
 *     if sc_isnan(a) or sc_isnan(b):
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     if (a < 0 and b > 0) or (a > 0 and b < 0):
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_agm.pxd":43
 *     cdef int sgn
 * 
 *     if sc_isnan(a) or sc_isnan(b):             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  }

  /* "_agm.pxd":46
 *         return nan
 * 
 *     if (a < 0 and b > 0) or (a > 0 and b < 0):             # <<<<<<<<<<<<<<
 *         # a and b have opposite sign.
 *         return nan
 */
  __pyx_t_2 = ((__pyx_v_a < 0.0) != 0);
  if (!__pyx_t_2) {
    goto __pyx_L8_next_or;
  } else {
  }
  __pyx_t_2 = ((__pyx_v_b > 0.0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_L8_next_or:;
  __pyx_t_2 = ((__pyx_v_a > 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_b < 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_agm.pxd":48
 *     if (a < 0 and b > 0) or (a > 0 and b < 0):
 *         # a and b have opposite sign.
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     if (sc_isinf(a) or sc_isinf(b)) and (a == 0 or b == 0):
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_agm.pxd":46
 *         return nan
 * 
 *     if (a < 0 and b > 0) or (a > 0 and b < 0):             # <<<<<<<<<<<<<<
 *         # a and b have opposite sign.
 *         return nan
 */
  }

  /* "_agm.pxd":50
 *         return nan
 * 
 *     if (sc_isinf(a) or sc_isinf(b)) and (a == 0 or b == 0):             # <<<<<<<<<<<<<<
 *         # One value is inf and the other is 0.
 *         return nan
 */
  __pyx_t_2 = (sc_isinf(__pyx_v_a) != 0);
  if (!__pyx_t_2) {
  } else {
    goto __pyx_L13_next_and;
  }
  __pyx_t_2 = (sc_isinf(__pyx_v_b) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L12_bool_binop_done;
  }
  __pyx_L13_next_and:;
  __pyx_t_2 = ((__pyx_v_a == 0.0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L12_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_b == 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L12_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_agm.pxd":52
 *     if (sc_isinf(a) or sc_isinf(b)) and (a == 0 or b == 0):
 *         # One value is inf and the other is 0.
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     if a == 0 or b == 0:
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_agm.pxd":50
 *         return nan
 * 
 *     if (sc_isinf(a) or sc_isinf(b)) and (a == 0 or b == 0):             # <<<<<<<<<<<<<<
 *         # One value is inf and the other is 0.
 *         return nan
 */
  }

  /* "_agm.pxd":54
 *         return nan
 * 
 *     if a == 0 or b == 0:             # <<<<<<<<<<<<<<
 *         # At least one of the arguments is 0.
 *         return 0.0
 */
  __pyx_t_2 = ((__pyx_v_a == 0.0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L17_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_b == 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L17_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_agm.pxd":56
 *     if a == 0 or b == 0:
 *         # At least one of the arguments is 0.
 *         return 0.0             # <<<<<<<<<<<<<<
 * 
 *     if a == b:
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_agm.pxd":54
 *         return nan
 * 
 *     if a == 0 or b == 0:             # <<<<<<<<<<<<<<
 *         # At least one of the arguments is 0.
 *         return 0.0
 */
  }

  /* "_agm.pxd":58
 *         return 0.0
 * 
 *     if a == b:             # <<<<<<<<<<<<<<
 *         return a
 * 
 */
  __pyx_t_1 = ((__pyx_v_a == __pyx_v_b) != 0);
  if (__pyx_t_1) {

    /* "_agm.pxd":59
 * 
 *     if a == b:
 *         return a             # <<<<<<<<<<<<<<
 * 
 *     sgn = 1
 */
    __pyx_r = __pyx_v_a;
    goto __pyx_L0;

    /* "_agm.pxd":58
 *         return 0.0
 * 
 *     if a == b:             # <<<<<<<<<<<<<<
 *         return a
 * 
 */
  }

  /* "_agm.pxd":61
 *         return a
 * 
 *     sgn = 1             # <<<<<<<<<<<<<<
 *     if a < 0:
 *         sgn = -1
 */
  __pyx_v_sgn = 1;

  /* "_agm.pxd":62
 * 
 *     sgn = 1
 *     if a < 0:             # <<<<<<<<<<<<<<
 *         sgn = -1
 *         a = -a
 */
  __pyx_t_1 = ((__pyx_v_a < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_agm.pxd":63
 *     sgn = 1
 *     if a < 0:
 *         sgn = -1             # <<<<<<<<<<<<<<
 *         a = -a
 *         b = -b
 */
    __pyx_v_sgn = -1;

    /* "_agm.pxd":64
 *     if a < 0:
 *         sgn = -1
 *         a = -a             # <<<<<<<<<<<<<<
 *         b = -b
 * 
 */
    __pyx_v_a = (-__pyx_v_a);

    /* "_agm.pxd":65
 *         sgn = -1
 *         a = -a
 *         b = -b             # <<<<<<<<<<<<<<
 * 
 *     # At this point, a and b are both positive and not nan.
 */
    __pyx_v_b = (-__pyx_v_b);

    /* "_agm.pxd":62
 * 
 *     sgn = 1
 *     if a < 0:             # <<<<<<<<<<<<<<
 *         sgn = -1
 *         a = -a
 */
  }

  /* "_agm.pxd":69
 *     # At this point, a and b are both positive and not nan.
 * 
 *     if (invsqrthalfmax < a < sqrthalfmax) and (invsqrthalfmax < b < sqrthalfmax):             # <<<<<<<<<<<<<<
 *         e = 4*a*b/(a + b)**2
 *         return sgn*(pi/4)*(a + b)/ellpk(e)
 */
  __pyx_t_2 = (__pyx_v_invsqrthalfmax < __pyx_v_a);
  if (__pyx_t_2) {
    __pyx_t_2 = (__pyx_v_a < __pyx_v_sqrthalfmax);
  }
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L22_bool_binop_done;
  }
  __pyx_t_3 = (__pyx_v_invsqrthalfmax < __pyx_v_b);
  if (__pyx_t_3) {
    __pyx_t_3 = (__pyx_v_b < __pyx_v_sqrthalfmax);
  }
  __pyx_t_2 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L22_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_agm.pxd":70
 * 
 *     if (invsqrthalfmax < a < sqrthalfmax) and (invsqrthalfmax < b < sqrthalfmax):
 *         e = 4*a*b/(a + b)**2             # <<<<<<<<<<<<<<
 *         return sgn*(pi/4)*(a + b)/ellpk(e)
 *     else:
 */
    __pyx_v_e = (((4.0 * __pyx_v_a) * __pyx_v_b) / pow((__pyx_v_a + __pyx_v_b), 2.0));

    /* "_agm.pxd":71
 *     if (invsqrthalfmax < a < sqrthalfmax) and (invsqrthalfmax < b < sqrthalfmax):
 *         e = 4*a*b/(a + b)**2
 *         return sgn*(pi/4)*(a + b)/ellpk(e)             # <<<<<<<<<<<<<<
 *     else:
 *         # At least one value is "extreme" (very big or very small).
 */
    __pyx_r = (((__pyx_v_sgn * (NPY_PI / 4.0)) * (__pyx_v_a + __pyx_v_b)) / ellpk(__pyx_v_e));
    goto __pyx_L0;

    /* "_agm.pxd":69
 *     # At this point, a and b are both positive and not nan.
 * 
 *     if (invsqrthalfmax < a < sqrthalfmax) and (invsqrthalfmax < b < sqrthalfmax):             # <<<<<<<<<<<<<<
 *         e = 4*a*b/(a + b)**2
 *         return sgn*(pi/4)*(a + b)/ellpk(e)
 */
  }

  /* "_agm.pxd":75
 *         # At least one value is "extreme" (very big or very small).
 *         # Use the iteration to avoid overflow or underflow.
 *         return sgn*_agm_iter(a, b)             # <<<<<<<<<<<<<<
 */
  /*else*/ {
    __pyx_r = (__pyx_v_sgn * __pyx_f_5scipy_7special_4_agm__agm_iter(__pyx_v_a, __pyx_v_b));
    goto __pyx_L0;
  }

  /* "_agm.pxd":32
 * 
 * @cython.cdivision(True)
 * cdef inline double agm(double a, double b) nogil:             # <<<<<<<<<<<<<<
 *     # Arithmetic-geometric mean
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_ellip_harm.pxd":49
 * @cython.boundscheck(False)
 * @cython.cdivision(True)
 * cdef inline double* lame_coefficients(double h2, double k2, int n, int p,             # <<<<<<<<<<<<<<
 *                                       void **bufferp, double signm,
 *                                       double signn) nogil:
 */

static CYTHON_INLINE double *__pyx_f_5scipy_7special_11_ellip_harm_lame_coefficients(double __pyx_v_h2, double __pyx_v_k2, int __pyx_v_n, int __pyx_v_p, void **__pyx_v_bufferp, double __pyx_v_signm, double __pyx_v_signn) {
  double __pyx_v_alpha;
  double __pyx_v_beta;
  double __pyx_v_gamma;
  double __pyx_v_tol;
  double __pyx_v_vl;
  double __pyx_v_vu;
  int __pyx_v_r;
  int __pyx_v_tp;
  int __pyx_v_j;
  int __pyx_v_size;
  int __pyx_v_i;
  int __pyx_v_info;
  int __pyx_v_lwork;
  int __pyx_v_liwork;
  int __pyx_v_c;
  Py_UNICODE __pyx_v_t;
  void *__pyx_v_buffer;
  double *__pyx_v_g;
  double *__pyx_v_d;
  double *__pyx_v_f;
  double *__pyx_v_ss;
  double *__pyx_v_w;
  double *__pyx_v_dd;
  double *__pyx_v_eigv;
  double *__pyx_v_work;
  int *__pyx_v_iwork;
  int *__pyx_v_isuppz;
  double *__pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  Py_UNICODE __pyx_t_3;
  int __pyx_t_4;
  long __pyx_t_5;
  long __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;

  /* "_ellip_harm.pxd":55
 *     # Ensure that the caller can safely call free(*bufferp) even if an
 *     # invalid argument is found in the following validation code.
 *     bufferp[0] = NULL             # <<<<<<<<<<<<<<
 * 
 *     if n < 0:
 */
  (__pyx_v_bufferp[0]) = NULL;

  /* "_ellip_harm.pxd":57
 *     bufferp[0] = NULL
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for n")
 *         return NULL
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":58
 * 
 *     if n < 0:
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for n")             # <<<<<<<<<<<<<<
 *         return NULL
 * 
 */
    sf_error(((char *)"ellip_harm"), SF_ERROR_ARG, ((char *)"invalid value for n"));

    /* "_ellip_harm.pxd":59
 *     if n < 0:
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for n")
 *         return NULL             # <<<<<<<<<<<<<<
 * 
 *     if p < 1 or p > 2*n + 1:
 */
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "_ellip_harm.pxd":57
 *     bufferp[0] = NULL
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for n")
 *         return NULL
 */
  }

  /* "_ellip_harm.pxd":61
 *         return NULL
 * 
 *     if p < 1 or p > 2*n + 1:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for p")
 *         return NULL
 */
  __pyx_t_2 = ((__pyx_v_p < 1) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_p > ((2 * __pyx_v_n) + 1)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":62
 * 
 *     if p < 1 or p > 2*n + 1:
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for p")             # <<<<<<<<<<<<<<
 *         return NULL
 * 
 */
    sf_error(((char *)"ellip_harm"), SF_ERROR_ARG, ((char *)"invalid value for p"));

    /* "_ellip_harm.pxd":63
 *     if p < 1 or p > 2*n + 1:
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for p")
 *         return NULL             # <<<<<<<<<<<<<<
 * 
 *     if fabs(signm) != 1 or fabs(signn) != 1:
 */
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "_ellip_harm.pxd":61
 *         return NULL
 * 
 *     if p < 1 or p > 2*n + 1:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid value for p")
 *         return NULL
 */
  }

  /* "_ellip_harm.pxd":65
 *         return NULL
 * 
 *     if fabs(signm) != 1 or fabs(signn) != 1:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid signm or signn")
 *         return NULL
 */
  __pyx_t_2 = ((fabs(__pyx_v_signm) != 1.0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = ((fabs(__pyx_v_signn) != 1.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":66
 * 
 *     if fabs(signm) != 1 or fabs(signn) != 1:
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid signm or signn")             # <<<<<<<<<<<<<<
 *         return NULL
 * 
 */
    sf_error(((char *)"ellip_harm"), SF_ERROR_ARG, ((char *)"invalid signm or signn"));

    /* "_ellip_harm.pxd":67
 *     if fabs(signm) != 1 or fabs(signn) != 1:
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid signm or signn")
 *         return NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef double s2, alpha, beta, gamma, lamba_romain, pp, psi, t1, tol, vl, vu
 */
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "_ellip_harm.pxd":65
 *         return NULL
 * 
 *     if fabs(signm) != 1 or fabs(signn) != 1:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.ARG, "invalid signm or signn")
 *         return NULL
 */
  }

  /* "_ellip_harm.pxd":73
 *     cdef Py_UNICODE t
 * 
 *     r = n/2             # <<<<<<<<<<<<<<
 *     alpha = h2
 *     beta = k2 - h2
 */
  __pyx_v_r = (((long)__pyx_v_n) / 2);

  /* "_ellip_harm.pxd":74
 * 
 *     r = n/2
 *     alpha = h2             # <<<<<<<<<<<<<<
 *     beta = k2 - h2
 *     gamma = alpha - beta
 */
  __pyx_v_alpha = __pyx_v_h2;

  /* "_ellip_harm.pxd":75
 *     r = n/2
 *     alpha = h2
 *     beta = k2 - h2             # <<<<<<<<<<<<<<
 *     gamma = alpha - beta
 * 
 */
  __pyx_v_beta = (__pyx_v_k2 - __pyx_v_h2);

  /* "_ellip_harm.pxd":76
 *     alpha = h2
 *     beta = k2 - h2
 *     gamma = alpha - beta             # <<<<<<<<<<<<<<
 * 
 *     if p - 1 < r + 1:
 */
  __pyx_v_gamma = (__pyx_v_alpha - __pyx_v_beta);

  /* "_ellip_harm.pxd":78
 *     gamma = alpha - beta
 * 
 *     if p - 1 < r + 1:             # <<<<<<<<<<<<<<
 *         t, tp, size = 'K', p, r + 1
 *     elif p - 1 < (n - r) + (r + 1):
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < (__pyx_v_r + 1)) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":79
 * 
 *     if p - 1 < r + 1:
 *         t, tp, size = 'K', p, r + 1             # <<<<<<<<<<<<<<
 *     elif p - 1 < (n - r) + (r + 1):
 *         t, tp, size = 'L', p - (r + 1), n - r
 */
    __pyx_t_3 = 75;
    __pyx_t_4 = __pyx_v_p;
    __pyx_t_5 = (__pyx_v_r + 1);
    __pyx_v_t = __pyx_t_3;
    __pyx_v_tp = __pyx_t_4;
    __pyx_v_size = __pyx_t_5;

    /* "_ellip_harm.pxd":78
 *     gamma = alpha - beta
 * 
 *     if p - 1 < r + 1:             # <<<<<<<<<<<<<<
 *         t, tp, size = 'K', p, r + 1
 *     elif p - 1 < (n - r) + (r + 1):
 */
    goto __pyx_L10;
  }

  /* "_ellip_harm.pxd":80
 *     if p - 1 < r + 1:
 *         t, tp, size = 'K', p, r + 1
 *     elif p - 1 < (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         t, tp, size = 'L', p - (r + 1), n - r
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < ((__pyx_v_n - __pyx_v_r) + (__pyx_v_r + 1))) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":81
 *         t, tp, size = 'K', p, r + 1
 *     elif p - 1 < (n - r) + (r + 1):
 *         t, tp, size = 'L', p - (r + 1), n - r             # <<<<<<<<<<<<<<
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         t, tp, size = 'M', p - (n - r) - (r + 1), n - r
 */
    __pyx_t_3 = 76;
    __pyx_t_5 = (__pyx_v_p - (__pyx_v_r + 1));
    __pyx_t_4 = (__pyx_v_n - __pyx_v_r);
    __pyx_v_t = __pyx_t_3;
    __pyx_v_tp = __pyx_t_5;
    __pyx_v_size = __pyx_t_4;

    /* "_ellip_harm.pxd":80
 *     if p - 1 < r + 1:
 *         t, tp, size = 'K', p, r + 1
 *     elif p - 1 < (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         t, tp, size = 'L', p - (r + 1), n - r
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 */
    goto __pyx_L10;
  }

  /* "_ellip_harm.pxd":82
 *     elif p - 1 < (n - r) + (r + 1):
 *         t, tp, size = 'L', p - (r + 1), n - r
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         t, tp, size = 'M', p - (n - r) - (r + 1), n - r
 *     elif p - 1 < 2*n + 1:
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < (((__pyx_v_n - __pyx_v_r) + (__pyx_v_n - __pyx_v_r)) + (__pyx_v_r + 1))) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":83
 *         t, tp, size = 'L', p - (r + 1), n - r
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         t, tp, size = 'M', p - (n - r) - (r + 1), n - r             # <<<<<<<<<<<<<<
 *     elif p - 1 < 2*n + 1:
 *         t, tp, size = 'N', p - (n - r) - (n - r) - (r + 1), r
 */
    __pyx_t_3 = 77;
    __pyx_t_5 = ((__pyx_v_p - (__pyx_v_n - __pyx_v_r)) - (__pyx_v_r + 1));
    __pyx_t_4 = (__pyx_v_n - __pyx_v_r);
    __pyx_v_t = __pyx_t_3;
    __pyx_v_tp = __pyx_t_5;
    __pyx_v_size = __pyx_t_4;

    /* "_ellip_harm.pxd":82
 *     elif p - 1 < (n - r) + (r + 1):
 *         t, tp, size = 'L', p - (r + 1), n - r
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         t, tp, size = 'M', p - (n - r) - (r + 1), n - r
 *     elif p - 1 < 2*n + 1:
 */
    goto __pyx_L10;
  }

  /* "_ellip_harm.pxd":84
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         t, tp, size = 'M', p - (n - r) - (r + 1), n - r
 *     elif p - 1 < 2*n + 1:             # <<<<<<<<<<<<<<
 *         t, tp, size = 'N', p - (n - r) - (n - r) - (r + 1), r
 * 
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < ((2 * __pyx_v_n) + 1)) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":85
 *         t, tp, size = 'M', p - (n - r) - (r + 1), n - r
 *     elif p - 1 < 2*n + 1:
 *         t, tp, size = 'N', p - (n - r) - (n - r) - (r + 1), r             # <<<<<<<<<<<<<<
 * 
 *     lwork = 60*size
 */
    __pyx_t_3 = 78;
    __pyx_t_5 = (((__pyx_v_p - (__pyx_v_n - __pyx_v_r)) - (__pyx_v_n - __pyx_v_r)) - (__pyx_v_r + 1));
    __pyx_t_4 = __pyx_v_r;
    __pyx_v_t = __pyx_t_3;
    __pyx_v_tp = __pyx_t_5;
    __pyx_v_size = __pyx_t_4;

    /* "_ellip_harm.pxd":84
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         t, tp, size = 'M', p - (n - r) - (r + 1), n - r
 *     elif p - 1 < 2*n + 1:             # <<<<<<<<<<<<<<
 *         t, tp, size = 'N', p - (n - r) - (n - r) - (r + 1), r
 * 
 */
  }
  __pyx_L10:;

  /* "_ellip_harm.pxd":87
 *         t, tp, size = 'N', p - (n - r) - (n - r) - (r + 1), r
 * 
 *     lwork = 60*size             # <<<<<<<<<<<<<<
 *     liwork = 30*size
 *     tol = 0.0
 */
  __pyx_v_lwork = (60 * __pyx_v_size);

  /* "_ellip_harm.pxd":88
 * 
 *     lwork = 60*size
 *     liwork = 30*size             # <<<<<<<<<<<<<<
 *     tol = 0.0
 *     vl = 0
 */
  __pyx_v_liwork = (30 * __pyx_v_size);

  /* "_ellip_harm.pxd":89
 *     lwork = 60*size
 *     liwork = 30*size
 *     tol = 0.0             # <<<<<<<<<<<<<<
 *     vl = 0
 *     vu = 0
 */
  __pyx_v_tol = 0.0;

  /* "_ellip_harm.pxd":90
 *     liwork = 30*size
 *     tol = 0.0
 *     vl = 0             # <<<<<<<<<<<<<<
 *     vu = 0
 * 
 */
  __pyx_v_vl = 0.0;

  /* "_ellip_harm.pxd":91
 *     tol = 0.0
 *     vl = 0
 *     vu = 0             # <<<<<<<<<<<<<<
 * 
 *     cdef void *buffer = malloc((sizeof(double)*(7*size + lwork))
 */
  __pyx_v_vu = 0.0;

  /* "_ellip_harm.pxd":93
 *     vu = 0
 * 
 *     cdef void *buffer = malloc((sizeof(double)*(7*size + lwork))             # <<<<<<<<<<<<<<
 *                                + (sizeof(int)*(2*size + liwork)))
 *     bufferp[0] = buffer
 */
  __pyx_v_buffer = malloc((((sizeof(double)) * ((7 * __pyx_v_size) + __pyx_v_lwork)) + ((sizeof(int)) * ((2 * __pyx_v_size) + __pyx_v_liwork))));

  /* "_ellip_harm.pxd":95
 *     cdef void *buffer = malloc((sizeof(double)*(7*size + lwork))
 *                                + (sizeof(int)*(2*size + liwork)))
 *     bufferp[0] = buffer             # <<<<<<<<<<<<<<
 *     if not buffer:
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")
 */
  (__pyx_v_bufferp[0]) = __pyx_v_buffer;

  /* "_ellip_harm.pxd":96
 *                                + (sizeof(int)*(2*size + liwork)))
 *     bufferp[0] = buffer
 *     if not buffer:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")
 *         return NULL
 */
  __pyx_t_1 = ((!(__pyx_v_buffer != 0)) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":97
 *     bufferp[0] = buffer
 *     if not buffer:
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")             # <<<<<<<<<<<<<<
 *         return NULL
 * 
 */
    sf_error(((char *)"ellip_harm"), SF_ERROR_NO_RESULT, ((char *)"failed to allocate memory"));

    /* "_ellip_harm.pxd":98
 *     if not buffer:
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")
 *         return NULL             # <<<<<<<<<<<<<<
 * 
 *     cdef double *g = <double *>buffer
 */
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "_ellip_harm.pxd":96
 *                                + (sizeof(int)*(2*size + liwork)))
 *     bufferp[0] = buffer
 *     if not buffer:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")
 *         return NULL
 */
  }

  /* "_ellip_harm.pxd":100
 *         return NULL
 * 
 *     cdef double *g = <double *>buffer             # <<<<<<<<<<<<<<
 *     cdef double *d = g + size
 *     cdef double *f = d + size
 */
  __pyx_v_g = ((double *)__pyx_v_buffer);

  /* "_ellip_harm.pxd":101
 * 
 *     cdef double *g = <double *>buffer
 *     cdef double *d = g + size             # <<<<<<<<<<<<<<
 *     cdef double *f = d + size
 *     cdef double *ss =  f + size
 */
  __pyx_v_d = (__pyx_v_g + __pyx_v_size);

  /* "_ellip_harm.pxd":102
 *     cdef double *g = <double *>buffer
 *     cdef double *d = g + size
 *     cdef double *f = d + size             # <<<<<<<<<<<<<<
 *     cdef double *ss =  f + size
 *     cdef double *w =  ss + size
 */
  __pyx_v_f = (__pyx_v_d + __pyx_v_size);

  /* "_ellip_harm.pxd":103
 *     cdef double *d = g + size
 *     cdef double *f = d + size
 *     cdef double *ss =  f + size             # <<<<<<<<<<<<<<
 *     cdef double *w =  ss + size
 *     cdef double *dd = w + size
 */
  __pyx_v_ss = (__pyx_v_f + __pyx_v_size);

  /* "_ellip_harm.pxd":104
 *     cdef double *f = d + size
 *     cdef double *ss =  f + size
 *     cdef double *w =  ss + size             # <<<<<<<<<<<<<<
 *     cdef double *dd = w + size
 *     cdef double *eigv = dd + size
 */
  __pyx_v_w = (__pyx_v_ss + __pyx_v_size);

  /* "_ellip_harm.pxd":105
 *     cdef double *ss =  f + size
 *     cdef double *w =  ss + size
 *     cdef double *dd = w + size             # <<<<<<<<<<<<<<
 *     cdef double *eigv = dd + size
 *     cdef double *work = eigv + size
 */
  __pyx_v_dd = (__pyx_v_w + __pyx_v_size);

  /* "_ellip_harm.pxd":106
 *     cdef double *w =  ss + size
 *     cdef double *dd = w + size
 *     cdef double *eigv = dd + size             # <<<<<<<<<<<<<<
 *     cdef double *work = eigv + size
 * 
 */
  __pyx_v_eigv = (__pyx_v_dd + __pyx_v_size);

  /* "_ellip_harm.pxd":107
 *     cdef double *dd = w + size
 *     cdef double *eigv = dd + size
 *     cdef double *work = eigv + size             # <<<<<<<<<<<<<<
 * 
 *     cdef int *iwork = <int *>(work + lwork)
 */
  __pyx_v_work = (__pyx_v_eigv + __pyx_v_size);

  /* "_ellip_harm.pxd":109
 *     cdef double *work = eigv + size
 * 
 *     cdef int *iwork = <int *>(work + lwork)             # <<<<<<<<<<<<<<
 *     cdef int *isuppz = iwork + liwork
 * 
 */
  __pyx_v_iwork = ((int *)(__pyx_v_work + __pyx_v_lwork));

  /* "_ellip_harm.pxd":110
 * 
 *     cdef int *iwork = <int *>(work + lwork)
 *     cdef int *isuppz = iwork + liwork             # <<<<<<<<<<<<<<
 * 
 *     if t == 'K':
 */
  __pyx_v_isuppz = (__pyx_v_iwork + __pyx_v_liwork);

  /* "_ellip_harm.pxd":112
 *     cdef int *isuppz = iwork + liwork
 * 
 *     if t == 'K':             # <<<<<<<<<<<<<<
 *         for j in range(0, r + 1):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 */
  switch (__pyx_v_t) {
    case 75:

    /* "_ellip_harm.pxd":113
 * 
 *     if t == 'K':
 *         for j in range(0, r + 1):             # <<<<<<<<<<<<<<
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:
 */
    __pyx_t_5 = (__pyx_v_r + 1);
    __pyx_t_6 = __pyx_t_5;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_6; __pyx_t_4+=1) {
      __pyx_v_j = __pyx_t_4;

      /* "_ellip_harm.pxd":114
 *     if t == 'K':
 *         for j in range(0, r + 1):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)             # <<<<<<<<<<<<<<
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 */
      (__pyx_v_g[__pyx_v_j]) = (((-((2 * __pyx_v_j) + 2)) * ((2 * __pyx_v_j) + 1)) * __pyx_v_beta);

      /* "_ellip_harm.pxd":115
 *         for j in range(0, r + 1):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = ((2*r + 1)*(2*r + 2) - 4*j*j)*alpha + (2*j + 1)*(2*j + 1)*beta
 */
      __pyx_t_1 = ((__pyx_v_n % 2) != 0);
      if (__pyx_t_1) {

        /* "_ellip_harm.pxd":116
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))             # <<<<<<<<<<<<<<
 *                d[j] = ((2*r + 1)*(2*r + 2) - 4*j*j)*alpha + (2*j + 1)*(2*j + 1)*beta
 *            else:
 */
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * ((2 * (__pyx_v_r - (__pyx_v_j + 1))) + 2)) * ((2 * ((__pyx_v_j + 1) + __pyx_v_r)) + 1));

        /* "_ellip_harm.pxd":117
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = ((2*r + 1)*(2*r + 2) - 4*j*j)*alpha + (2*j + 1)*(2*j + 1)*beta             # <<<<<<<<<<<<<<
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*(r + (j + 1)) - 1))
 */
        (__pyx_v_d[__pyx_v_j]) = ((((((2 * __pyx_v_r) + 1) * ((2 * __pyx_v_r) + 2)) - ((4 * __pyx_v_j) * __pyx_v_j)) * __pyx_v_alpha) + ((((2 * __pyx_v_j) + 1) * ((2 * __pyx_v_j) + 1)) * __pyx_v_beta));

        /* "_ellip_harm.pxd":115
 *         for j in range(0, r + 1):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = ((2*r + 1)*(2*r + 2) - 4*j*j)*alpha + (2*j + 1)*(2*j + 1)*beta
 */
        goto __pyx_L14;
      }

      /* "_ellip_harm.pxd":119
 *                d[j] = ((2*r + 1)*(2*r + 2) - 4*j*j)*alpha + (2*j + 1)*(2*j + 1)*beta
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*(r + (j + 1)) - 1))             # <<<<<<<<<<<<<<
 *                d[j] = 2*r*(2*r + 1)*alpha - 4*j*j*gamma
 * 
 */
      /*else*/ {
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * ((2 * (__pyx_v_r - (__pyx_v_j + 1))) + 2)) * ((2 * (__pyx_v_r + (__pyx_v_j + 1))) - 1));

        /* "_ellip_harm.pxd":120
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*(r + (j + 1)) - 1))
 *                d[j] = 2*r*(2*r + 1)*alpha - 4*j*j*gamma             # <<<<<<<<<<<<<<
 * 
 *     elif t == 'L':
 */
        (__pyx_v_d[__pyx_v_j]) = ((((2 * __pyx_v_r) * ((2 * __pyx_v_r) + 1)) * __pyx_v_alpha) - (((4 * __pyx_v_j) * __pyx_v_j) * __pyx_v_gamma));
      }
      __pyx_L14:;
    }

    /* "_ellip_harm.pxd":112
 *     cdef int *isuppz = iwork + liwork
 * 
 *     if t == 'K':             # <<<<<<<<<<<<<<
 *         for j in range(0, r + 1):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 */
    break;
    case 76:

    /* "_ellip_harm.pxd":123
 * 
 *     elif t == 'L':
 *         for j in range(0, n - r):             # <<<<<<<<<<<<<<
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:
 */
    __pyx_t_4 = (__pyx_v_n - __pyx_v_r);
    __pyx_t_7 = __pyx_t_4;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_j = __pyx_t_8;

      /* "_ellip_harm.pxd":124
 *     elif t == 'L':
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)             # <<<<<<<<<<<<<<
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 */
      (__pyx_v_g[__pyx_v_j]) = (((-((2 * __pyx_v_j) + 2)) * ((2 * __pyx_v_j) + 3)) * __pyx_v_beta);

      /* "_ellip_harm.pxd":125
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 1)*(2*j + 1)*gamma
 */
      __pyx_t_1 = ((__pyx_v_n % 2) != 0);
      if (__pyx_t_1) {

        /* "_ellip_harm.pxd":126
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))             # <<<<<<<<<<<<<<
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 1)*(2*j + 1)*gamma
 *            else:
 */
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * ((2 * (__pyx_v_r - (__pyx_v_j + 1))) + 2)) * ((2 * ((__pyx_v_j + 1) + __pyx_v_r)) + 1));

        /* "_ellip_harm.pxd":127
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 1)*(2*j + 1)*gamma             # <<<<<<<<<<<<<<
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))
 */
        (__pyx_v_d[__pyx_v_j]) = (((((2 * __pyx_v_r) + 1) * ((2 * __pyx_v_r) + 2)) * __pyx_v_alpha) - ((((2 * __pyx_v_j) + 1) * ((2 * __pyx_v_j) + 1)) * __pyx_v_gamma));

        /* "_ellip_harm.pxd":125
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r- (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 1)*(2*j + 1)*gamma
 */
        goto __pyx_L17;
      }

      /* "_ellip_harm.pxd":129
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 1)*(2*j + 1)*gamma
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))             # <<<<<<<<<<<<<<
 *                d[j] = (2*r*(2*r + 1) - (2*j + 1)*(2*j + 1))*alpha + (2*j + 2)*(2*j + 2)*beta
 * 
 */
      /*else*/ {
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * (2 * (__pyx_v_r - (__pyx_v_j + 1)))) * ((2 * (__pyx_v_r + (__pyx_v_j + 1))) + 1));

        /* "_ellip_harm.pxd":130
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))
 *                d[j] = (2*r*(2*r + 1) - (2*j + 1)*(2*j + 1))*alpha + (2*j + 2)*(2*j + 2)*beta             # <<<<<<<<<<<<<<
 * 
 *     elif t == 'M':
 */
        (__pyx_v_d[__pyx_v_j]) = (((((2 * __pyx_v_r) * ((2 * __pyx_v_r) + 1)) - (((2 * __pyx_v_j) + 1) * ((2 * __pyx_v_j) + 1))) * __pyx_v_alpha) + ((((2 * __pyx_v_j) + 2) * ((2 * __pyx_v_j) + 2)) * __pyx_v_beta));
      }
      __pyx_L17:;
    }

    /* "_ellip_harm.pxd":122
 *                d[j] = 2*r*(2*r + 1)*alpha - 4*j*j*gamma
 * 
 *     elif t == 'L':             # <<<<<<<<<<<<<<
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 */
    break;
    case 77:

    /* "_ellip_harm.pxd":133
 * 
 *     elif t == 'M':
 *         for j in range(0, n - r):             # <<<<<<<<<<<<<<
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:
 */
    __pyx_t_4 = (__pyx_v_n - __pyx_v_r);
    __pyx_t_7 = __pyx_t_4;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_j = __pyx_t_8;

      /* "_ellip_harm.pxd":134
 *     elif t == 'M':
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)             # <<<<<<<<<<<<<<
 *            if n%2:
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 */
      (__pyx_v_g[__pyx_v_j]) = (((-((2 * __pyx_v_j) + 2)) * ((2 * __pyx_v_j) + 1)) * __pyx_v_beta);

      /* "_ellip_harm.pxd":135
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = ((2*r + 1)*(2*r + 2) - (2*j + 1)*(2*j + 1))*alpha + 4*j*j*beta
 */
      __pyx_t_1 = ((__pyx_v_n % 2) != 0);
      if (__pyx_t_1) {

        /* "_ellip_harm.pxd":136
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*((j + 1) + r) + 1))             # <<<<<<<<<<<<<<
 *                d[j] = ((2*r + 1)*(2*r + 2) - (2*j + 1)*(2*j + 1))*alpha + 4*j*j*beta
 *            else:
 */
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * ((2 * (__pyx_v_r - (__pyx_v_j + 1))) + 2)) * ((2 * ((__pyx_v_j + 1) + __pyx_v_r)) + 1));

        /* "_ellip_harm.pxd":137
 *            if n%2:
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = ((2*r + 1)*(2*r + 2) - (2*j + 1)*(2*j + 1))*alpha + 4*j*j*beta             # <<<<<<<<<<<<<<
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))
 */
        (__pyx_v_d[__pyx_v_j]) = ((((((2 * __pyx_v_r) + 1) * ((2 * __pyx_v_r) + 2)) - (((2 * __pyx_v_j) + 1) * ((2 * __pyx_v_j) + 1))) * __pyx_v_alpha) + (((4 * __pyx_v_j) * __pyx_v_j) * __pyx_v_beta));

        /* "_ellip_harm.pxd":135
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r - (j + 1)) + 2)*(2*((j + 1) + r) + 1))
 *                d[j] = ((2*r + 1)*(2*r + 2) - (2*j + 1)*(2*j + 1))*alpha + 4*j*j*beta
 */
        goto __pyx_L20;
      }

      /* "_ellip_harm.pxd":139
 *                d[j] = ((2*r + 1)*(2*r + 2) - (2*j + 1)*(2*j + 1))*alpha + 4*j*j*beta
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))             # <<<<<<<<<<<<<<
 *                d[j] = 2*r*(2*r + 1)*alpha - (2*j + 1)*(2*j + 1)*gamma
 * 
 */
      /*else*/ {
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * (2 * (__pyx_v_r - (__pyx_v_j + 1)))) * ((2 * (__pyx_v_r + (__pyx_v_j + 1))) + 1));

        /* "_ellip_harm.pxd":140
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))
 *                d[j] = 2*r*(2*r + 1)*alpha - (2*j + 1)*(2*j + 1)*gamma             # <<<<<<<<<<<<<<
 * 
 *     elif t == 'N':
 */
        (__pyx_v_d[__pyx_v_j]) = ((((2 * __pyx_v_r) * ((2 * __pyx_v_r) + 1)) * __pyx_v_alpha) - ((((2 * __pyx_v_j) + 1) * ((2 * __pyx_v_j) + 1)) * __pyx_v_gamma));
      }
      __pyx_L20:;
    }

    /* "_ellip_harm.pxd":132
 *                d[j] = (2*r*(2*r + 1) - (2*j + 1)*(2*j + 1))*alpha + (2*j + 2)*(2*j + 2)*beta
 * 
 *     elif t == 'M':             # <<<<<<<<<<<<<<
 *         for j in range(0, n - r):
 *            g[j] = (-(2*j + 2)*(2*j + 1)*beta)
 */
    break;
    case 78:

    /* "_ellip_harm.pxd":143
 * 
 *     elif t == 'N':
 *         for j in range(0, r):             # <<<<<<<<<<<<<<
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:
 */
    __pyx_t_4 = __pyx_v_r;
    __pyx_t_7 = __pyx_t_4;
    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
      __pyx_v_j = __pyx_t_8;

      /* "_ellip_harm.pxd":144
 *     elif t == 'N':
 *         for j in range(0, r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)             # <<<<<<<<<<<<<<
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)))*(2*((j + 1) + r) + 3))
 */
      (__pyx_v_g[__pyx_v_j]) = (((-((2 * __pyx_v_j) + 2)) * ((2 * __pyx_v_j) + 3)) * __pyx_v_beta);

      /* "_ellip_harm.pxd":145
 *         for j in range(0, r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r- (j + 1)))*(2*((j + 1) + r) + 3))
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 2)*(2*j + 2)*gamma
 */
      __pyx_t_1 = ((__pyx_v_n % 2) != 0);
      if (__pyx_t_1) {

        /* "_ellip_harm.pxd":146
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)))*(2*((j + 1) + r) + 3))             # <<<<<<<<<<<<<<
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 2)*(2*j + 2)*gamma
 *            else:
 */
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * (2 * (__pyx_v_r - (__pyx_v_j + 1)))) * ((2 * ((__pyx_v_j + 1) + __pyx_v_r)) + 3));

        /* "_ellip_harm.pxd":147
 *            if n%2:
 *                f[j] = (-alpha*(2*(r- (j + 1)))*(2*((j + 1) + r) + 3))
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 2)*(2*j + 2)*gamma             # <<<<<<<<<<<<<<
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))
 */
        (__pyx_v_d[__pyx_v_j]) = (((((2 * __pyx_v_r) + 1) * ((2 * __pyx_v_r) + 2)) * __pyx_v_alpha) - ((((2 * __pyx_v_j) + 2) * ((2 * __pyx_v_j) + 2)) * __pyx_v_gamma));

        /* "_ellip_harm.pxd":145
 *         for j in range(0, r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 *            if n%2:             # <<<<<<<<<<<<<<
 *                f[j] = (-alpha*(2*(r- (j + 1)))*(2*((j + 1) + r) + 3))
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 2)*(2*j + 2)*gamma
 */
        goto __pyx_L23;
      }

      /* "_ellip_harm.pxd":149
 *                d[j] = (2*r + 1)*(2*r + 2)*alpha - (2*j + 2)*(2*j + 2)*gamma
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))             # <<<<<<<<<<<<<<
 *                d[j] = 2*r*(2*r + 1)*alpha - (2*j + 2)*(2*j +2)*alpha + (2*j + 1)*(2*j + 1)*beta
 * 
 */
      /*else*/ {
        (__pyx_v_f[__pyx_v_j]) = (((-__pyx_v_alpha) * (2 * (__pyx_v_r - (__pyx_v_j + 1)))) * ((2 * (__pyx_v_r + (__pyx_v_j + 1))) + 1));

        /* "_ellip_harm.pxd":150
 *            else:
 *                f[j] = (-alpha*(2*(r - (j + 1)))*(2*(r+(j + 1)) + 1))
 *                d[j] = 2*r*(2*r + 1)*alpha - (2*j + 2)*(2*j +2)*alpha + (2*j + 1)*(2*j + 1)*beta             # <<<<<<<<<<<<<<
 * 
 *     for i in range(0, size):
 */
        (__pyx_v_d[__pyx_v_j]) = (((((2 * __pyx_v_r) * ((2 * __pyx_v_r) + 1)) * __pyx_v_alpha) - ((((2 * __pyx_v_j) + 2) * ((2 * __pyx_v_j) + 2)) * __pyx_v_alpha)) + ((((2 * __pyx_v_j) + 1) * ((2 * __pyx_v_j) + 1)) * __pyx_v_beta));
      }
      __pyx_L23:;
    }

    /* "_ellip_harm.pxd":142
 *                d[j] = 2*r*(2*r + 1)*alpha - (2*j + 1)*(2*j + 1)*gamma
 * 
 *     elif t == 'N':             # <<<<<<<<<<<<<<
 *         for j in range(0, r):
 *            g[j] = (-(2*j + 2)*(2*j + 3)*beta)
 */
    break;
    default: break;
  }

  /* "_ellip_harm.pxd":152
 *                d[j] = 2*r*(2*r + 1)*alpha - (2*j + 2)*(2*j +2)*alpha + (2*j + 1)*(2*j + 1)*beta
 * 
 *     for i in range(0, size):             # <<<<<<<<<<<<<<
 *         if i == 0:
 *            ss[i] = 1
 */
  __pyx_t_4 = __pyx_v_size;
  __pyx_t_7 = __pyx_t_4;
  for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
    __pyx_v_i = __pyx_t_8;

    /* "_ellip_harm.pxd":153
 * 
 *     for i in range(0, size):
 *         if i == 0:             # <<<<<<<<<<<<<<
 *            ss[i] = 1
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_i == 0) != 0);
    if (__pyx_t_1) {

      /* "_ellip_harm.pxd":154
 *     for i in range(0, size):
 *         if i == 0:
 *            ss[i] = 1             # <<<<<<<<<<<<<<
 *         else:
 *            ss[i] = sqrt(g[i - 1]/f[i - 1])*ss[i - 1]
 */
      (__pyx_v_ss[__pyx_v_i]) = 1.0;

      /* "_ellip_harm.pxd":153
 * 
 *     for i in range(0, size):
 *         if i == 0:             # <<<<<<<<<<<<<<
 *            ss[i] = 1
 *         else:
 */
      goto __pyx_L26;
    }

    /* "_ellip_harm.pxd":156
 *            ss[i] = 1
 *         else:
 *            ss[i] = sqrt(g[i - 1]/f[i - 1])*ss[i - 1]             # <<<<<<<<<<<<<<
 * 
 *     for i in range(0, size-1):
 */
    /*else*/ {
      (__pyx_v_ss[__pyx_v_i]) = (sqrt(((__pyx_v_g[(__pyx_v_i - 1)]) / (__pyx_v_f[(__pyx_v_i - 1)]))) * (__pyx_v_ss[(__pyx_v_i - 1)]));
    }
    __pyx_L26:;
  }

  /* "_ellip_harm.pxd":158
 *            ss[i] = sqrt(g[i - 1]/f[i - 1])*ss[i - 1]
 * 
 *     for i in range(0, size-1):             # <<<<<<<<<<<<<<
 *         dd[i] = g[i]*ss[i]/ss[i+1]
 * 
 */
  __pyx_t_5 = (__pyx_v_size - 1);
  __pyx_t_6 = __pyx_t_5;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_6; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "_ellip_harm.pxd":159
 * 
 *     for i in range(0, size-1):
 *         dd[i] = g[i]*ss[i]/ss[i+1]             # <<<<<<<<<<<<<<
 * 
 *     c_dstevr("V", "I", &size, d, dd, &vl, &vu, &tp, &tp, &tol, &c, w, eigv,
 */
    (__pyx_v_dd[__pyx_v_i]) = (((__pyx_v_g[__pyx_v_i]) * (__pyx_v_ss[__pyx_v_i])) / (__pyx_v_ss[(__pyx_v_i + 1)]));
  }

  /* "_ellip_harm.pxd":161
 *         dd[i] = g[i]*ss[i]/ss[i+1]
 * 
 *     c_dstevr("V", "I", &size, d, dd, &vl, &vu, &tp, &tp, &tol, &c, w, eigv,             # <<<<<<<<<<<<<<
 *              &size, isuppz, work, &lwork, iwork, &liwork, &info)
 * 
 */
  c_dstevr(((char *)"V"), ((char *)"I"), (&__pyx_v_size), __pyx_v_d, __pyx_v_dd, (&__pyx_v_vl), (&__pyx_v_vu), (&__pyx_v_tp), (&__pyx_v_tp), (&__pyx_v_tol), (&__pyx_v_c), __pyx_v_w, __pyx_v_eigv, (&__pyx_v_size), __pyx_v_isuppz, __pyx_v_work, (&__pyx_v_lwork), __pyx_v_iwork, (&__pyx_v_liwork), (&__pyx_v_info));

  /* "_ellip_harm.pxd":164
 *              &size, isuppz, work, &lwork, iwork, &liwork, &info)
 * 
 *     if info != 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")
 *         return NULL
 */
  __pyx_t_1 = ((__pyx_v_info != 0) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":165
 * 
 *     if info != 0:
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")             # <<<<<<<<<<<<<<
 *         return NULL
 * 
 */
    sf_error(((char *)"ellip_harm"), SF_ERROR_NO_RESULT, ((char *)"failed to allocate memory"));

    /* "_ellip_harm.pxd":166
 *     if info != 0:
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")
 *         return NULL             # <<<<<<<<<<<<<<
 * 
 *     for i in range(0, size):
 */
    __pyx_r = NULL;
    goto __pyx_L0;

    /* "_ellip_harm.pxd":164
 *              &size, isuppz, work, &lwork, iwork, &liwork, &info)
 * 
 *     if info != 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("ellip_harm", sf_error.NO_RESULT, "failed to allocate memory")
 *         return NULL
 */
  }

  /* "_ellip_harm.pxd":168
 *         return NULL
 * 
 *     for i in range(0, size):             # <<<<<<<<<<<<<<
 *         eigv[i] /= ss[i]
 * 
 */
  __pyx_t_4 = __pyx_v_size;
  __pyx_t_7 = __pyx_t_4;
  for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
    __pyx_v_i = __pyx_t_8;

    /* "_ellip_harm.pxd":169
 * 
 *     for i in range(0, size):
 *         eigv[i] /= ss[i]             # <<<<<<<<<<<<<<
 * 
 *     for i in range(0, size):
 */
    __pyx_t_9 = __pyx_v_i;
    (__pyx_v_eigv[__pyx_t_9]) = ((__pyx_v_eigv[__pyx_t_9]) / (__pyx_v_ss[__pyx_v_i]));
  }

  /* "_ellip_harm.pxd":171
 *         eigv[i] /= ss[i]
 * 
 *     for i in range(0, size):             # <<<<<<<<<<<<<<
 *         eigv[i] = eigv[i]/(eigv[size - 1]/pow(-h2, size - 1))
 *     return eigv
 */
  __pyx_t_4 = __pyx_v_size;
  __pyx_t_7 = __pyx_t_4;
  for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
    __pyx_v_i = __pyx_t_8;

    /* "_ellip_harm.pxd":172
 * 
 *     for i in range(0, size):
 *         eigv[i] = eigv[i]/(eigv[size - 1]/pow(-h2, size - 1))             # <<<<<<<<<<<<<<
 *     return eigv
 * 
 */
    (__pyx_v_eigv[__pyx_v_i]) = ((__pyx_v_eigv[__pyx_v_i]) / ((__pyx_v_eigv[(__pyx_v_size - 1)]) / pow((-__pyx_v_h2), (__pyx_v_size - 1))));
  }

  /* "_ellip_harm.pxd":173
 *     for i in range(0, size):
 *         eigv[i] = eigv[i]/(eigv[size - 1]/pow(-h2, size - 1))
 *     return eigv             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_eigv;
  goto __pyx_L0;

  /* "_ellip_harm.pxd":49
 * @cython.boundscheck(False)
 * @cython.cdivision(True)
 * cdef inline double* lame_coefficients(double h2, double k2, int n, int p,             # <<<<<<<<<<<<<<
 *                                       void **bufferp, double signm,
 *                                       double signn) nogil:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_ellip_harm.pxd":179
 * @cython.boundscheck(False)
 * @cython.cdivision(True)
 * cdef inline double ellip_harm_eval(double h2, double k2, int n, int p,             # <<<<<<<<<<<<<<
 *                                    double s, double *eigv, double signm,
 *                                    double signn) nogil:
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_11_ellip_harm_ellip_harm_eval(double __pyx_v_h2, double __pyx_v_k2, int __pyx_v_n, int __pyx_v_p, double __pyx_v_s, double *__pyx_v_eigv, double __pyx_v_signm, double __pyx_v_signn) {
  int __pyx_v_size;
  int __pyx_v_r;
  int __pyx_v_j;
  double __pyx_v_s2;
  double __pyx_v_pp;
  double __pyx_v_lambda_romain;
  double __pyx_v_psi;
  double __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;
  double __pyx_t_3;
  int __pyx_t_4;

  /* "_ellip_harm.pxd":184
 *     cdef int size, tp, r, j
 *     cdef double s2, pp, lambda_romain, psi
 *     s2 = s*s             # <<<<<<<<<<<<<<
 *     r = n/2
 *     if p - 1 < r + 1:
 */
  __pyx_v_s2 = (__pyx_v_s * __pyx_v_s);

  /* "_ellip_harm.pxd":185
 *     cdef double s2, pp, lambda_romain, psi
 *     s2 = s*s
 *     r = n/2             # <<<<<<<<<<<<<<
 *     if p - 1 < r + 1:
 *         size, psi = r + 1, pow(s, n - 2*r)
 */
  __pyx_v_r = (((long)__pyx_v_n) / 2);

  /* "_ellip_harm.pxd":186
 *     s2 = s*s
 *     r = n/2
 *     if p - 1 < r + 1:             # <<<<<<<<<<<<<<
 *         size, psi = r + 1, pow(s, n - 2*r)
 *     elif p - 1 < (n - r) + (r + 1):
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < (__pyx_v_r + 1)) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":187
 *     r = n/2
 *     if p - 1 < r + 1:
 *         size, psi = r + 1, pow(s, n - 2*r)             # <<<<<<<<<<<<<<
 *     elif p - 1 < (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signm*sqrt(fabs(s2 - h2))
 */
    __pyx_t_2 = (__pyx_v_r + 1);
    __pyx_t_3 = pow(__pyx_v_s, (__pyx_v_n - (2 * __pyx_v_r)));
    __pyx_v_size = __pyx_t_2;
    __pyx_v_psi = __pyx_t_3;

    /* "_ellip_harm.pxd":186
 *     s2 = s*s
 *     r = n/2
 *     if p - 1 < r + 1:             # <<<<<<<<<<<<<<
 *         size, psi = r + 1, pow(s, n - 2*r)
 *     elif p - 1 < (n - r) + (r + 1):
 */
    goto __pyx_L3;
  }

  /* "_ellip_harm.pxd":188
 *     if p - 1 < r + 1:
 *         size, psi = r + 1, pow(s, n - 2*r)
 *     elif p - 1 < (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signm*sqrt(fabs(s2 - h2))
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < ((__pyx_v_n - __pyx_v_r) + (__pyx_v_r + 1))) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":189
 *         size, psi = r + 1, pow(s, n - 2*r)
 *     elif p - 1 < (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signm*sqrt(fabs(s2 - h2))             # <<<<<<<<<<<<<<
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signn*sqrt(fabs(s2 - k2))
 */
    __pyx_t_4 = (__pyx_v_n - __pyx_v_r);
    __pyx_t_3 = ((pow(__pyx_v_s, ((1 - __pyx_v_n) + (2 * __pyx_v_r))) * __pyx_v_signm) * sqrt(fabs((__pyx_v_s2 - __pyx_v_h2))));
    __pyx_v_size = __pyx_t_4;
    __pyx_v_psi = __pyx_t_3;

    /* "_ellip_harm.pxd":188
 *     if p - 1 < r + 1:
 *         size, psi = r + 1, pow(s, n - 2*r)
 *     elif p - 1 < (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signm*sqrt(fabs(s2 - h2))
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 */
    goto __pyx_L3;
  }

  /* "_ellip_harm.pxd":190
 *     elif p - 1 < (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signm*sqrt(fabs(s2 - h2))
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signn*sqrt(fabs(s2 - k2))
 *     elif p - 1 < 2*n + 1:
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < (((__pyx_v_n - __pyx_v_r) + (__pyx_v_n - __pyx_v_r)) + (__pyx_v_r + 1))) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":191
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signm*sqrt(fabs(s2 - h2))
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signn*sqrt(fabs(s2 - k2))             # <<<<<<<<<<<<<<
 *     elif p - 1 < 2*n + 1:
 *         size, psi = r, pow(s,  n - 2*r)*signm*signn*sqrt(fabs((s2 - h2)*(s2 - k2)))
 */
    __pyx_t_4 = (__pyx_v_n - __pyx_v_r);
    __pyx_t_3 = ((pow(__pyx_v_s, ((1 - __pyx_v_n) + (2 * __pyx_v_r))) * __pyx_v_signn) * sqrt(fabs((__pyx_v_s2 - __pyx_v_k2))));
    __pyx_v_size = __pyx_t_4;
    __pyx_v_psi = __pyx_t_3;

    /* "_ellip_harm.pxd":190
 *     elif p - 1 < (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signm*sqrt(fabs(s2 - h2))
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):             # <<<<<<<<<<<<<<
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signn*sqrt(fabs(s2 - k2))
 *     elif p - 1 < 2*n + 1:
 */
    goto __pyx_L3;
  }

  /* "_ellip_harm.pxd":192
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signn*sqrt(fabs(s2 - k2))
 *     elif p - 1 < 2*n + 1:             # <<<<<<<<<<<<<<
 *         size, psi = r, pow(s,  n - 2*r)*signm*signn*sqrt(fabs((s2 - h2)*(s2 - k2)))
 *     lambda_romain = 1.0 - <double>s2/<double>h2
 */
  __pyx_t_1 = (((__pyx_v_p - 1) < ((2 * __pyx_v_n) + 1)) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":193
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signn*sqrt(fabs(s2 - k2))
 *     elif p - 1 < 2*n + 1:
 *         size, psi = r, pow(s,  n - 2*r)*signm*signn*sqrt(fabs((s2 - h2)*(s2 - k2)))             # <<<<<<<<<<<<<<
 *     lambda_romain = 1.0 - <double>s2/<double>h2
 *     pp = eigv[size - 1]
 */
    __pyx_t_4 = __pyx_v_r;
    __pyx_t_3 = (((pow(__pyx_v_s, (__pyx_v_n - (2 * __pyx_v_r))) * __pyx_v_signm) * __pyx_v_signn) * sqrt(fabs(((__pyx_v_s2 - __pyx_v_h2) * (__pyx_v_s2 - __pyx_v_k2)))));
    __pyx_v_size = __pyx_t_4;
    __pyx_v_psi = __pyx_t_3;

    /* "_ellip_harm.pxd":192
 *     elif p - 1 < (n - r) + (n - r) + (r + 1):
 *         size, psi = n - r, pow(s, 1 - n + 2*r)*signn*sqrt(fabs(s2 - k2))
 *     elif p - 1 < 2*n + 1:             # <<<<<<<<<<<<<<
 *         size, psi = r, pow(s,  n - 2*r)*signm*signn*sqrt(fabs((s2 - h2)*(s2 - k2)))
 *     lambda_romain = 1.0 - <double>s2/<double>h2
 */
  }
  __pyx_L3:;

  /* "_ellip_harm.pxd":194
 *     elif p - 1 < 2*n + 1:
 *         size, psi = r, pow(s,  n - 2*r)*signm*signn*sqrt(fabs((s2 - h2)*(s2 - k2)))
 *     lambda_romain = 1.0 - <double>s2/<double>h2             # <<<<<<<<<<<<<<
 *     pp = eigv[size - 1]
 * 
 */
  __pyx_v_lambda_romain = (1.0 - (((double)__pyx_v_s2) / ((double)__pyx_v_h2)));

  /* "_ellip_harm.pxd":195
 *         size, psi = r, pow(s,  n - 2*r)*signm*signn*sqrt(fabs((s2 - h2)*(s2 - k2)))
 *     lambda_romain = 1.0 - <double>s2/<double>h2
 *     pp = eigv[size - 1]             # <<<<<<<<<<<<<<
 * 
 *     for j in range(size - 2, -1, -1):
 */
  __pyx_v_pp = (__pyx_v_eigv[(__pyx_v_size - 1)]);

  /* "_ellip_harm.pxd":197
 *     pp = eigv[size - 1]
 * 
 *     for j in range(size - 2, -1, -1):             # <<<<<<<<<<<<<<
 *         pp = pp*lambda_romain + eigv[j]
 *     pp = pp*psi
 */
  for (__pyx_t_4 = (__pyx_v_size - 2); __pyx_t_4 > -1; __pyx_t_4-=1) {
    __pyx_v_j = __pyx_t_4;

    /* "_ellip_harm.pxd":198
 * 
 *     for j in range(size - 2, -1, -1):
 *         pp = pp*lambda_romain + eigv[j]             # <<<<<<<<<<<<<<
 *     pp = pp*psi
 *     return pp
 */
    __pyx_v_pp = ((__pyx_v_pp * __pyx_v_lambda_romain) + (__pyx_v_eigv[__pyx_v_j]));
  }

  /* "_ellip_harm.pxd":199
 *     for j in range(size - 2, -1, -1):
 *         pp = pp*lambda_romain + eigv[j]
 *     pp = pp*psi             # <<<<<<<<<<<<<<
 *     return pp
 * 
 */
  __pyx_v_pp = (__pyx_v_pp * __pyx_v_psi);

  /* "_ellip_harm.pxd":200
 *         pp = pp*lambda_romain + eigv[j]
 *     pp = pp*psi
 *     return pp             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_pp;
  goto __pyx_L0;

  /* "_ellip_harm.pxd":179
 * @cython.boundscheck(False)
 * @cython.cdivision(True)
 * cdef inline double ellip_harm_eval(double h2, double k2, int n, int p,             # <<<<<<<<<<<<<<
 *                                    double s, double *eigv, double signm,
 *                                    double signn) nogil:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_ellip_harm.pxd":203
 * 
 * 
 * cdef inline double ellip_harmonic(double h2, double k2, int n, int p, double s,             # <<<<<<<<<<<<<<
 *                                   double signm, double signn) nogil:
 *     cdef double result
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_11_ellip_harm_ellip_harmonic(double __pyx_v_h2, double __pyx_v_k2, int __pyx_v_n, int __pyx_v_p, double __pyx_v_s, double __pyx_v_signm, double __pyx_v_signn) {
  double __pyx_v_result;
  double *__pyx_v_eigv;
  void *__pyx_v_bufferp;
  double __pyx_r;
  int __pyx_t_1;

  /* "_ellip_harm.pxd":208
 *     cdef double *eigv
 *     cdef void *bufferp
 *     eigv = lame_coefficients(h2, k2, n, p, &bufferp, signm, signn)             # <<<<<<<<<<<<<<
 *     if not eigv:
 *         free(bufferp)
 */
  __pyx_v_eigv = __pyx_f_5scipy_7special_11_ellip_harm_lame_coefficients(__pyx_v_h2, __pyx_v_k2, __pyx_v_n, __pyx_v_p, (&__pyx_v_bufferp), __pyx_v_signm, __pyx_v_signn);

  /* "_ellip_harm.pxd":209
 *     cdef void *bufferp
 *     eigv = lame_coefficients(h2, k2, n, p, &bufferp, signm, signn)
 *     if not eigv:             # <<<<<<<<<<<<<<
 *         free(bufferp)
 *         return NAN
 */
  __pyx_t_1 = ((!(__pyx_v_eigv != 0)) != 0);
  if (__pyx_t_1) {

    /* "_ellip_harm.pxd":210
 *     eigv = lame_coefficients(h2, k2, n, p, &bufferp, signm, signn)
 *     if not eigv:
 *         free(bufferp)             # <<<<<<<<<<<<<<
 *         return NAN
 *     result = ellip_harm_eval(h2, k2, n, p, s, eigv, signm, signn)
 */
    free(__pyx_v_bufferp);

    /* "_ellip_harm.pxd":211
 *     if not eigv:
 *         free(bufferp)
 *         return NAN             # <<<<<<<<<<<<<<
 *     result = ellip_harm_eval(h2, k2, n, p, s, eigv, signm, signn)
 *     free(bufferp)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_ellip_harm.pxd":209
 *     cdef void *bufferp
 *     eigv = lame_coefficients(h2, k2, n, p, &bufferp, signm, signn)
 *     if not eigv:             # <<<<<<<<<<<<<<
 *         free(bufferp)
 *         return NAN
 */
  }

  /* "_ellip_harm.pxd":212
 *         free(bufferp)
 *         return NAN
 *     result = ellip_harm_eval(h2, k2, n, p, s, eigv, signm, signn)             # <<<<<<<<<<<<<<
 *     free(bufferp)
 *     return result
 */
  __pyx_v_result = __pyx_f_5scipy_7special_11_ellip_harm_ellip_harm_eval(__pyx_v_h2, __pyx_v_k2, __pyx_v_n, __pyx_v_p, __pyx_v_s, __pyx_v_eigv, __pyx_v_signm, __pyx_v_signn);

  /* "_ellip_harm.pxd":213
 *         return NAN
 *     result = ellip_harm_eval(h2, k2, n, p, s, eigv, signm, signn)
 *     free(bufferp)             # <<<<<<<<<<<<<<
 *     return result
 */
  free(__pyx_v_bufferp);

  /* "_ellip_harm.pxd":214
 *     result = ellip_harm_eval(h2, k2, n, p, s, eigv, signm, signn)
 *     free(bufferp)
 *     return result             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "_ellip_harm.pxd":203
 * 
 * 
 * cdef inline double ellip_harmonic(double h2, double k2, int n, int p, double s,             # <<<<<<<<<<<<<<
 *                                   double signm, double signn) nogil:
 *     cdef double result
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "sph_harm.pxd":11
 * from libc.stdlib cimport abs
 * 
 * cdef inline double complex sph_harmonic(int m, int n, double theta, double phi) nogil:             # <<<<<<<<<<<<<<
 *     cdef double x, prefactor
 *     cdef double complex val
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8sph_harm_sph_harmonic(int __pyx_v_m, int __pyx_v_n, double __pyx_v_theta, double __pyx_v_phi) {
  double __pyx_v_x;
  double __pyx_v_prefactor;
  __pyx_t_double_complex __pyx_v_val;
  int __pyx_v_mp;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "sph_harm.pxd":15
 *     cdef double complex val
 *     cdef int mp
 *     x = cos(phi)             # <<<<<<<<<<<<<<
 *     if abs(m) > n :
 *         sf_error.error("sph_harm", sf_error.ARG, "m should not be greater than n")
 */
  __pyx_v_x = cos(__pyx_v_phi);

  /* "sph_harm.pxd":16
 *     cdef int mp
 *     x = cos(phi)
 *     if abs(m) > n :             # <<<<<<<<<<<<<<
 *         sf_error.error("sph_harm", sf_error.ARG, "m should not be greater than n")
 *         return nan
 */
  __pyx_t_1 = ((abs(__pyx_v_m) > __pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "sph_harm.pxd":17
 *     x = cos(phi)
 *     if abs(m) > n :
 *         sf_error.error("sph_harm", sf_error.ARG, "m should not be greater than n")             # <<<<<<<<<<<<<<
 *         return nan
 *     if n < 0:
 */
    sf_error(((char *)"sph_harm"), SF_ERROR_ARG, ((char *)"m should not be greater than n"));

    /* "sph_harm.pxd":18
 *     if abs(m) > n :
 *         sf_error.error("sph_harm", sf_error.ARG, "m should not be greater than n")
 *         return nan             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error("sph_harm", sf_error.ARG, "n should not be negative")
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "sph_harm.pxd":16
 *     cdef int mp
 *     x = cos(phi)
 *     if abs(m) > n :             # <<<<<<<<<<<<<<
 *         sf_error.error("sph_harm", sf_error.ARG, "m should not be greater than n")
 *         return nan
 */
  }

  /* "sph_harm.pxd":19
 *         sf_error.error("sph_harm", sf_error.ARG, "m should not be greater than n")
 *         return nan
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("sph_harm", sf_error.ARG, "n should not be negative")
 *         return nan
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "sph_harm.pxd":20
 *         return nan
 *     if n < 0:
 *         sf_error.error("sph_harm", sf_error.ARG, "n should not be negative")             # <<<<<<<<<<<<<<
 *         return nan
 *     if m < 0:
 */
    sf_error(((char *)"sph_harm"), SF_ERROR_ARG, ((char *)"n should not be negative"));

    /* "sph_harm.pxd":21
 *     if n < 0:
 *         sf_error.error("sph_harm", sf_error.ARG, "n should not be negative")
 *         return nan             # <<<<<<<<<<<<<<
 *     if m < 0:
 *         mp = -m
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "sph_harm.pxd":19
 *         sf_error.error("sph_harm", sf_error.ARG, "m should not be greater than n")
 *         return nan
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error("sph_harm", sf_error.ARG, "n should not be negative")
 *         return nan
 */
  }

  /* "sph_harm.pxd":22
 *         sf_error.error("sph_harm", sf_error.ARG, "n should not be negative")
 *         return nan
 *     if m < 0:             # <<<<<<<<<<<<<<
 *         mp = -m
 *         prefactor = (-1)**mp * poch(n + mp + 1, -2 * mp)
 */
  __pyx_t_1 = ((__pyx_v_m < 0) != 0);
  if (__pyx_t_1) {

    /* "sph_harm.pxd":23
 *         return nan
 *     if m < 0:
 *         mp = -m             # <<<<<<<<<<<<<<
 *         prefactor = (-1)**mp * poch(n + mp + 1, -2 * mp)
 *     else:
 */
    __pyx_v_mp = (-__pyx_v_m);

    /* "sph_harm.pxd":24
 *     if m < 0:
 *         mp = -m
 *         prefactor = (-1)**mp * poch(n + mp + 1, -2 * mp)             # <<<<<<<<<<<<<<
 *     else:
 *         mp = m
 */
    __pyx_v_prefactor = (__Pyx_pow_long(-1L, ((long)__pyx_v_mp)) * poch(((__pyx_v_n + __pyx_v_mp) + 1), (-2L * __pyx_v_mp)));

    /* "sph_harm.pxd":22
 *         sf_error.error("sph_harm", sf_error.ARG, "n should not be negative")
 *         return nan
 *     if m < 0:             # <<<<<<<<<<<<<<
 *         mp = -m
 *         prefactor = (-1)**mp * poch(n + mp + 1, -2 * mp)
 */
    goto __pyx_L5;
  }

  /* "sph_harm.pxd":26
 *         prefactor = (-1)**mp * poch(n + mp + 1, -2 * mp)
 *     else:
 *         mp = m             # <<<<<<<<<<<<<<
 *     val = pmv_wrap(mp, n, x)
 *     if  m < 0:
 */
  /*else*/ {
    __pyx_v_mp = __pyx_v_m;
  }
  __pyx_L5:;

  /* "sph_harm.pxd":27
 *     else:
 *         mp = m
 *     val = pmv_wrap(mp, n, x)             # <<<<<<<<<<<<<<
 *     if  m < 0:
 *         val *= prefactor
 */
  __pyx_v_val = __pyx_t_double_complex_from_parts(pmv_wrap(__pyx_v_mp, __pyx_v_n, __pyx_v_x), 0);

  /* "sph_harm.pxd":28
 *         mp = m
 *     val = pmv_wrap(mp, n, x)
 *     if  m < 0:             # <<<<<<<<<<<<<<
 *         val *= prefactor
 *     val *= sqrt((2*n + 1) / 4.0 / pi)
 */
  __pyx_t_1 = ((__pyx_v_m < 0) != 0);
  if (__pyx_t_1) {

    /* "sph_harm.pxd":29
 *     val = pmv_wrap(mp, n, x)
 *     if  m < 0:
 *         val *= prefactor             # <<<<<<<<<<<<<<
 *     val *= sqrt((2*n + 1) / 4.0 / pi)
 *     val *= sqrt(poch(n + m + 1, -2 * m))
 */
    __pyx_v_val = __Pyx_c_prod_double(__pyx_v_val, __pyx_t_double_complex_from_parts(__pyx_v_prefactor, 0));

    /* "sph_harm.pxd":28
 *         mp = m
 *     val = pmv_wrap(mp, n, x)
 *     if  m < 0:             # <<<<<<<<<<<<<<
 *         val *= prefactor
 *     val *= sqrt((2*n + 1) / 4.0 / pi)
 */
  }

  /* "sph_harm.pxd":30
 *     if  m < 0:
 *         val *= prefactor
 *     val *= sqrt((2*n + 1) / 4.0 / pi)             # <<<<<<<<<<<<<<
 *     val *= sqrt(poch(n + m + 1, -2 * m))
 *     val *= zexp(1j * m * theta)
 */
  __pyx_t_2 = (((double)((2 * __pyx_v_n) + 1)) / 4.0);
  if (unlikely(NPY_PI == 0)) {
    #ifdef WITH_THREAD
    PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
    #endif
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    #ifdef WITH_THREAD
    __Pyx_PyGILState_Release(__pyx_gilstate_save);
    #endif
    __PYX_ERR(3, 30, __pyx_L1_error)
  }
  __pyx_v_val = __Pyx_c_prod_double(__pyx_v_val, __pyx_t_double_complex_from_parts(sqrt((__pyx_t_2 / NPY_PI)), 0));

  /* "sph_harm.pxd":31
 *         val *= prefactor
 *     val *= sqrt((2*n + 1) / 4.0 / pi)
 *     val *= sqrt(poch(n + m + 1, -2 * m))             # <<<<<<<<<<<<<<
 *     val *= zexp(1j * m * theta)
 *     return val
 */
  __pyx_v_val = __Pyx_c_prod_double(__pyx_v_val, __pyx_t_double_complex_from_parts(sqrt(poch(((__pyx_v_n + __pyx_v_m) + 1), (-2L * __pyx_v_m))), 0));

  /* "sph_harm.pxd":32
 *     val *= sqrt((2*n + 1) / 4.0 / pi)
 *     val *= sqrt(poch(n + m + 1, -2 * m))
 *     val *= zexp(1j * m * theta)             # <<<<<<<<<<<<<<
 *     return val
 */
  __pyx_v_val = __Pyx_c_prod_double(__pyx_v_val, __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zexp(__Pyx_c_prod_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(__pyx_v_m, 0)), __pyx_t_double_complex_from_parts(__pyx_v_theta, 0))));

  /* "sph_harm.pxd":33
 *     val *= sqrt(poch(n + m + 1, -2 * m))
 *     val *= zexp(1j * m * theta)
 *     return val             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_val;
  goto __pyx_L0;

  /* "sph_harm.pxd":11
 * from libc.stdlib cimport abs
 * 
 * cdef inline double complex sph_harmonic(int m, int n, double theta, double phi) nogil:             # <<<<<<<<<<<<<<
 *     cdef double x, prefactor
 *     cdef double complex val
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special.sph_harm.sph_harmonic", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":32
 *     int PyErr_WarnEx_noerr "PyErr_WarnEx" (object, char *, int)
 * 
 * cdef inline void _legacy_cast_check(char *func_name, double x, double y) nogil:             # <<<<<<<<<<<<<<
 *     if <int>x != x or <int>y != y:
 *         with gil:
 */

static CYTHON_INLINE void __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(CYTHON_UNUSED char *__pyx_v_func_name, double __pyx_v_x, double __pyx_v_y) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif
  __Pyx_RefNannySetupContext("_legacy_cast_check", 1);

  /* "_legacy.pxd":33
 * 
 * cdef inline void _legacy_cast_check(char *func_name, double x, double y) nogil:
 *     if <int>x != x or <int>y != y:             # <<<<<<<<<<<<<<
 *         with gil:
 *             PyErr_WarnEx_noerr(RuntimeWarning,
 */
  /*try:*/ {
    __pyx_t_2 = ((((int)__pyx_v_x) != __pyx_v_x) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_2 = ((((int)__pyx_v_y) != __pyx_v_y) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_1) {

      /* "_legacy.pxd":34
 * cdef inline void _legacy_cast_check(char *func_name, double x, double y) nogil:
 *     if <int>x != x or <int>y != y:
 *         with gil:             # <<<<<<<<<<<<<<
 *             PyErr_WarnEx_noerr(RuntimeWarning,
 *                                "floating point number truncated to an integer",
 */
      {
          #ifdef WITH_THREAD
          PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
          #endif
          /*try:*/ {

            /* "_legacy.pxd":35
 *     if <int>x != x or <int>y != y:
 *         with gil:
 *             PyErr_WarnEx_noerr(RuntimeWarning,             # <<<<<<<<<<<<<<
 *                                "floating point number truncated to an integer",
 *                                1)
 */
            (void)(PyErr_WarnEx(__pyx_builtin_RuntimeWarning, ((char *)"floating point number truncated to an integer"), 1));
          }

          /* "_legacy.pxd":34
 * cdef inline void _legacy_cast_check(char *func_name, double x, double y) nogil:
 *     if <int>x != x or <int>y != y:
 *         with gil:             # <<<<<<<<<<<<<<
 *             PyErr_WarnEx_noerr(RuntimeWarning,
 *                                "floating point number truncated to an integer",
 */
          /*finally:*/ {
            /*normal exit:*/{
              #ifdef WITH_THREAD
              __Pyx_PyGILState_Release(__pyx_gilstate_save);
              #endif
              goto __pyx_L11;
            }
            __pyx_L11:;
          }
      }

      /* "_legacy.pxd":33
 * 
 * cdef inline void _legacy_cast_check(char *func_name, double x, double y) nogil:
 *     if <int>x != x or <int>y != y:             # <<<<<<<<<<<<<<
 *         with gil:
 *             PyErr_WarnEx_noerr(RuntimeWarning,
 */
    }
  }
  /*finally:*/ {
    /*normal exit:*/{
      #ifdef WITH_THREAD
      __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      goto __pyx_L5;
    }
    __pyx_L5:;
  }

  /* "_legacy.pxd":32
 *     int PyErr_WarnEx_noerr "PyErr_WarnEx" (object, char *, int)
 * 
 * cdef inline void _legacy_cast_check(char *func_name, double x, double y) nogil:             # <<<<<<<<<<<<<<
 *     if <int>x != x or <int>y != y:
 *         with gil:
 */

  /* function exit code */
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "_legacy.pxd":39
 *                                1)
 * 
 * cdef inline void _legacy_deprecation(char *func_name, double x, double y) nogil:             # <<<<<<<<<<<<<<
 *         with gil:
 *             PyErr_WarnEx_noerr(DeprecationWarning,
 */

static CYTHON_INLINE void __pyx_f_5scipy_7special_7_legacy__legacy_deprecation(CYTHON_UNUSED char *__pyx_v_func_name, CYTHON_UNUSED double __pyx_v_x, CYTHON_UNUSED double __pyx_v_y) {
  __Pyx_RefNannyDeclarations
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save;
  #endif
  __Pyx_RefNannySetupContext("_legacy_deprecation", 1);

  /* "_legacy.pxd":40
 * 
 * cdef inline void _legacy_deprecation(char *func_name, double x, double y) nogil:
 *         with gil:             # <<<<<<<<<<<<<<
 *             PyErr_WarnEx_noerr(DeprecationWarning,
 *                                "non-integer arg n is deprecated, removed in SciPy 1.7.x",
 */
  /*try:*/ {
    {
        #ifdef WITH_THREAD
        PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
        #endif
        /*try:*/ {

          /* "_legacy.pxd":41
 * cdef inline void _legacy_deprecation(char *func_name, double x, double y) nogil:
 *         with gil:
 *             PyErr_WarnEx_noerr(DeprecationWarning,             # <<<<<<<<<<<<<<
 *                                "non-integer arg n is deprecated, removed in SciPy 1.7.x",
 *                                1)
 */
          (void)(PyErr_WarnEx(__pyx_builtin_DeprecationWarning, ((char *)"non-integer arg n is deprecated, removed in SciPy 1.7.x"), 1));
        }

        /* "_legacy.pxd":40
 * 
 * cdef inline void _legacy_deprecation(char *func_name, double x, double y) nogil:
 *         with gil:             # <<<<<<<<<<<<<<
 *             PyErr_WarnEx_noerr(DeprecationWarning,
 *                                "non-integer arg n is deprecated, removed in SciPy 1.7.x",
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            __Pyx_PyGILState_Release(__pyx_gilstate_save);
            #endif
            goto __pyx_L8;
          }
          __pyx_L8:;
        }
    }
  }
  /*finally:*/ {
    /*normal exit:*/{
      #ifdef WITH_THREAD
      __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      goto __pyx_L5;
    }
    __pyx_L5:;
  }

  /* "_legacy.pxd":39
 *                                1)
 * 
 * cdef inline void _legacy_deprecation(char *func_name, double x, double y) nogil:             # <<<<<<<<<<<<<<
 *         with gil:
 *             PyErr_WarnEx_noerr(DeprecationWarning,
 */

  /* function exit code */
  #ifdef WITH_THREAD
  __Pyx_PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "_legacy.pxd":45
 *                                1)
 * 
 * cdef inline double complex sph_harmonic_unsafe(double m, double n,             # <<<<<<<<<<<<<<
 *                                                double theta, double phi) nogil:
 *     if npy_isnan(m) or npy_isnan(n):
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_legacy_sph_harmonic_unsafe(double __pyx_v_m, double __pyx_v_n, double __pyx_v_theta, double __pyx_v_phi) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":47
 * cdef inline double complex sph_harmonic_unsafe(double m, double n,
 *                                                double theta, double phi) nogil:
 *     if npy_isnan(m) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("sph_harm", m, n)
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_m) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":48
 *                                                double theta, double phi) nogil:
 *     if npy_isnan(m) or npy_isnan(n):
 *         return nan             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("sph_harm", m, n)
 *     return sph_harmonic(<int>m, <int> n, theta, phi)
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_legacy.pxd":47
 * cdef inline double complex sph_harmonic_unsafe(double m, double n,
 *                                                double theta, double phi) nogil:
 *     if npy_isnan(m) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("sph_harm", m, n)
 */
  }

  /* "_legacy.pxd":49
 *     if npy_isnan(m) or npy_isnan(n):
 *         return nan
 *     _legacy_cast_check("sph_harm", m, n)             # <<<<<<<<<<<<<<
 *     return sph_harmonic(<int>m, <int> n, theta, phi)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"sph_harm"), __pyx_v_m, __pyx_v_n);

  /* "_legacy.pxd":50
 *         return nan
 *     _legacy_cast_check("sph_harm", m, n)
 *     return sph_harmonic(<int>m, <int> n, theta, phi)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double ellip_harmonic_unsafe(double h2, double k2, double n,
 */
  __pyx_r = __pyx_f_5scipy_7special_8sph_harm_sph_harmonic(((int)__pyx_v_m), ((int)__pyx_v_n), __pyx_v_theta, __pyx_v_phi);
  goto __pyx_L0;

  /* "_legacy.pxd":45
 *                                1)
 * 
 * cdef inline double complex sph_harmonic_unsafe(double m, double n,             # <<<<<<<<<<<<<<
 *                                                double theta, double phi) nogil:
 *     if npy_isnan(m) or npy_isnan(n):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":52
 *     return sph_harmonic(<int>m, <int> n, theta, phi)
 * 
 * cdef inline double ellip_harmonic_unsafe(double h2, double k2, double n,             # <<<<<<<<<<<<<<
 *                                          double p, double l, double signm,
 *                                          double signn) nogil:
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_ellip_harmonic_unsafe(double __pyx_v_h2, double __pyx_v_k2, double __pyx_v_n, double __pyx_v_p, double __pyx_v_l, double __pyx_v_signm, double __pyx_v_signn) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":55
 *                                          double p, double l, double signm,
 *                                          double signn) nogil:
 *     if npy_isnan(n) or npy_isnan(p):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("_ellip_harm", n, p)
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_p) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":56
 *                                          double signn) nogil:
 *     if npy_isnan(n) or npy_isnan(p):
 *         return nan             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("_ellip_harm", n, p)
 *     return ellip_harmonic(h2, k2, <int>n, <int>p, l, signm, signn)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_legacy.pxd":55
 *                                          double p, double l, double signm,
 *                                          double signn) nogil:
 *     if npy_isnan(n) or npy_isnan(p):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("_ellip_harm", n, p)
 */
  }

  /* "_legacy.pxd":57
 *     if npy_isnan(n) or npy_isnan(p):
 *         return nan
 *     _legacy_cast_check("_ellip_harm", n, p)             # <<<<<<<<<<<<<<
 *     return ellip_harmonic(h2, k2, <int>n, <int>p, l, signm, signn)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"_ellip_harm"), __pyx_v_n, __pyx_v_p);

  /* "_legacy.pxd":58
 *         return nan
 *     _legacy_cast_check("_ellip_harm", n, p)
 *     return ellip_harmonic(h2, k2, <int>n, <int>p, l, signm, signn)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double bdtr_unsafe(double k, double n, double p) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_11_ellip_harm_ellip_harmonic(__pyx_v_h2, __pyx_v_k2, ((int)__pyx_v_n), ((int)__pyx_v_p), __pyx_v_l, __pyx_v_signm, __pyx_v_signn);
  goto __pyx_L0;

  /* "_legacy.pxd":52
 *     return sph_harmonic(<int>m, <int> n, theta, phi)
 * 
 * cdef inline double ellip_harmonic_unsafe(double h2, double k2, double n,             # <<<<<<<<<<<<<<
 *                                          double p, double l, double signm,
 *                                          double signn) nogil:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":60
 *     return ellip_harmonic(h2, k2, <int>n, <int>p, l, signm, signn)
 * 
 * cdef inline double bdtr_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     _legacy_deprecation("bdtr", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_bdtr_unsafe(double __pyx_v_k, double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":61
 * 
 * cdef inline double bdtr_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtr", k, n)             # <<<<<<<<<<<<<<
 *     if npy_isnan(n) or npy_isinf(n):
 *         return nan
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_deprecation(((char *)"bdtr"), __pyx_v_k, __pyx_v_n);

  /* "_legacy.pxd":62
 * cdef inline double bdtr_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtr", k, n)
 *     if npy_isnan(n) or npy_isinf(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     else:
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isinf(__pyx_v_n) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":63
 *     _legacy_deprecation("bdtr", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 *         return nan             # <<<<<<<<<<<<<<
 *     else:
 *         return bdtr(k, <int>n, p)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_legacy.pxd":62
 * cdef inline double bdtr_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtr", k, n)
 *     if npy_isnan(n) or npy_isinf(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     else:
 */
  }

  /* "_legacy.pxd":65
 *         return nan
 *     else:
 *         return bdtr(k, <int>n, p)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double bdtrc_unsafe(double k, double n, double p) nogil:
 */
  /*else*/ {
    __pyx_r = bdtr(__pyx_v_k, ((int)__pyx_v_n), __pyx_v_p);
    goto __pyx_L0;
  }

  /* "_legacy.pxd":60
 *     return ellip_harmonic(h2, k2, <int>n, <int>p, l, signm, signn)
 * 
 * cdef inline double bdtr_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     _legacy_deprecation("bdtr", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":67
 *         return bdtr(k, <int>n, p)
 * 
 * cdef inline double bdtrc_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     _legacy_deprecation("bdtrc", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_bdtrc_unsafe(double __pyx_v_k, double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":68
 * 
 * cdef inline double bdtrc_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtrc", k, n)             # <<<<<<<<<<<<<<
 *     if npy_isnan(n) or npy_isinf(n):
 *         return nan
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_deprecation(((char *)"bdtrc"), __pyx_v_k, __pyx_v_n);

  /* "_legacy.pxd":69
 * cdef inline double bdtrc_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtrc", k, n)
 *     if npy_isnan(n) or npy_isinf(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     else:
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isinf(__pyx_v_n) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":70
 *     _legacy_deprecation("bdtrc", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 *         return nan             # <<<<<<<<<<<<<<
 *     else:
 *         return bdtrc(k, <int>n, p)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_legacy.pxd":69
 * cdef inline double bdtrc_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtrc", k, n)
 *     if npy_isnan(n) or npy_isinf(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     else:
 */
  }

  /* "_legacy.pxd":72
 *         return nan
 *     else:
 *         return bdtrc(k, <int>n, p)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double bdtri_unsafe(double k, double n, double p) nogil:
 */
  /*else*/ {
    __pyx_r = bdtrc(__pyx_v_k, ((int)__pyx_v_n), __pyx_v_p);
    goto __pyx_L0;
  }

  /* "_legacy.pxd":67
 *         return bdtr(k, <int>n, p)
 * 
 * cdef inline double bdtrc_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     _legacy_deprecation("bdtrc", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":74
 *         return bdtrc(k, <int>n, p)
 * 
 * cdef inline double bdtri_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     _legacy_deprecation("bdtri", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_bdtri_unsafe(double __pyx_v_k, double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":75
 * 
 * cdef inline double bdtri_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtri", k, n)             # <<<<<<<<<<<<<<
 *     if npy_isnan(n) or npy_isinf(n):
 *         return nan
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_deprecation(((char *)"bdtri"), __pyx_v_k, __pyx_v_n);

  /* "_legacy.pxd":76
 * cdef inline double bdtri_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtri", k, n)
 *     if npy_isnan(n) or npy_isinf(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     else:
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isinf(__pyx_v_n) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":77
 *     _legacy_deprecation("bdtri", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 *         return nan             # <<<<<<<<<<<<<<
 *     else:
 *         return bdtri(k, <int>n, p)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_legacy.pxd":76
 * cdef inline double bdtri_unsafe(double k, double n, double p) nogil:
 *     _legacy_deprecation("bdtri", k, n)
 *     if npy_isnan(n) or npy_isinf(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     else:
 */
  }

  /* "_legacy.pxd":79
 *         return nan
 *     else:
 *         return bdtri(k, <int>n, p)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double expn_unsafe(double n, double x) nogil:
 */
  /*else*/ {
    __pyx_r = bdtri(__pyx_v_k, ((int)__pyx_v_n), __pyx_v_p);
    goto __pyx_L0;
  }

  /* "_legacy.pxd":74
 *         return bdtrc(k, <int>n, p)
 * 
 * cdef inline double bdtri_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     _legacy_deprecation("bdtri", k, n)
 *     if npy_isnan(n) or npy_isinf(n):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":81
 *         return bdtri(k, <int>n, p)
 * 
 * cdef inline double expn_unsafe(double n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_expn_unsafe(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":82
 * 
 * cdef inline double expn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("expn", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":83
 * cdef inline double expn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("expn", n, 0)
 *     return expn(<int>n, x)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":82
 * 
 * cdef inline double expn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("expn", n, 0)
 */
  }

  /* "_legacy.pxd":84
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("expn", n, 0)             # <<<<<<<<<<<<<<
 *     return expn(<int>n, x)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"expn"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":85
 *         return n
 *     _legacy_cast_check("expn", n, 0)
 *     return expn(<int>n, x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double nbdtrc_unsafe(double k, double n, double p) nogil:
 */
  __pyx_r = expn(((int)__pyx_v_n), __pyx_v_x);
  goto __pyx_L0;

  /* "_legacy.pxd":81
 *         return bdtri(k, <int>n, p)
 * 
 * cdef inline double expn_unsafe(double n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":87
 *     return expn(<int>n, x)
 * 
 * cdef inline double nbdtrc_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_nbdtrc_unsafe(double __pyx_v_k, double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":88
 * 
 * cdef inline double nbdtrc_unsafe(double k, double n, double p) nogil:
 *     if npy_isnan(k) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("nbdtrc", k, n)
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_k) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":89
 * cdef inline double nbdtrc_unsafe(double k, double n, double p) nogil:
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("nbdtrc", k, n)
 *     return nbdtrc(<int>k, <int>n, p)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_legacy.pxd":88
 * 
 * cdef inline double nbdtrc_unsafe(double k, double n, double p) nogil:
 *     if npy_isnan(k) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("nbdtrc", k, n)
 */
  }

  /* "_legacy.pxd":90
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 *     _legacy_cast_check("nbdtrc", k, n)             # <<<<<<<<<<<<<<
 *     return nbdtrc(<int>k, <int>n, p)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"nbdtrc"), __pyx_v_k, __pyx_v_n);

  /* "_legacy.pxd":91
 *         return nan
 *     _legacy_cast_check("nbdtrc", k, n)
 *     return nbdtrc(<int>k, <int>n, p)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double nbdtr_unsafe(double k, double n, double p)  nogil:
 */
  __pyx_r = nbdtrc(((int)__pyx_v_k), ((int)__pyx_v_n), __pyx_v_p);
  goto __pyx_L0;

  /* "_legacy.pxd":87
 *     return expn(<int>n, x)
 * 
 * cdef inline double nbdtrc_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":93
 *     return nbdtrc(<int>k, <int>n, p)
 * 
 * cdef inline double nbdtr_unsafe(double k, double n, double p)  nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_nbdtr_unsafe(double __pyx_v_k, double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":94
 * 
 * cdef inline double nbdtr_unsafe(double k, double n, double p)  nogil:
 *     if npy_isnan(k) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("nbdtr", k, n)
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_k) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":95
 * cdef inline double nbdtr_unsafe(double k, double n, double p)  nogil:
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("nbdtr", k, n)
 *     return nbdtr(<int>k, <int>n, p)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_legacy.pxd":94
 * 
 * cdef inline double nbdtr_unsafe(double k, double n, double p)  nogil:
 *     if npy_isnan(k) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("nbdtr", k, n)
 */
  }

  /* "_legacy.pxd":96
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 *     _legacy_cast_check("nbdtr", k, n)             # <<<<<<<<<<<<<<
 *     return nbdtr(<int>k, <int>n, p)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"nbdtr"), __pyx_v_k, __pyx_v_n);

  /* "_legacy.pxd":97
 *         return nan
 *     _legacy_cast_check("nbdtr", k, n)
 *     return nbdtr(<int>k, <int>n, p)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double nbdtri_unsafe(double k, double n, double p) nogil:
 */
  __pyx_r = nbdtr(((int)__pyx_v_k), ((int)__pyx_v_n), __pyx_v_p);
  goto __pyx_L0;

  /* "_legacy.pxd":93
 *     return nbdtrc(<int>k, <int>n, p)
 * 
 * cdef inline double nbdtr_unsafe(double k, double n, double p)  nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":99
 *     return nbdtr(<int>k, <int>n, p)
 * 
 * cdef inline double nbdtri_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_nbdtri_unsafe(double __pyx_v_k, double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_legacy.pxd":100
 * 
 * cdef inline double nbdtri_unsafe(double k, double n, double p) nogil:
 *     if npy_isnan(k) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("nbdtri", k, n)
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_k) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_n) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_legacy.pxd":101
 * cdef inline double nbdtri_unsafe(double k, double n, double p) nogil:
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("nbdtri", k, n)
 *     return nbdtri(<int>k, <int>n, p)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_legacy.pxd":100
 * 
 * cdef inline double nbdtri_unsafe(double k, double n, double p) nogil:
 *     if npy_isnan(k) or npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return nan
 *     _legacy_cast_check("nbdtri", k, n)
 */
  }

  /* "_legacy.pxd":102
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 *     _legacy_cast_check("nbdtri", k, n)             # <<<<<<<<<<<<<<
 *     return nbdtri(<int>k, <int>n, p)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"nbdtri"), __pyx_v_k, __pyx_v_n);

  /* "_legacy.pxd":103
 *         return nan
 *     _legacy_cast_check("nbdtri", k, n)
 *     return nbdtri(<int>k, <int>n, p)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double pdtri_unsafe(double k, double y) nogil:
 */
  __pyx_r = nbdtri(((int)__pyx_v_k), ((int)__pyx_v_n), __pyx_v_p);
  goto __pyx_L0;

  /* "_legacy.pxd":99
 *     return nbdtr(<int>k, <int>n, p)
 * 
 * cdef inline double nbdtri_unsafe(double k, double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k) or npy_isnan(n):
 *         return nan
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":105
 *     return nbdtri(<int>k, <int>n, p)
 * 
 * cdef inline double pdtri_unsafe(double k, double y) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k):
 *         return k
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_pdtri_unsafe(double __pyx_v_k, double __pyx_v_y) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":106
 * 
 * cdef inline double pdtri_unsafe(double k, double y) nogil:
 *     if npy_isnan(k):             # <<<<<<<<<<<<<<
 *         return k
 *     _legacy_cast_check("pdtri", k, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_k) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":107
 * cdef inline double pdtri_unsafe(double k, double y) nogil:
 *     if npy_isnan(k):
 *         return k             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("pdtri", k, 0)
 *     return pdtri(<int>k, y)
 */
    __pyx_r = __pyx_v_k;
    goto __pyx_L0;

    /* "_legacy.pxd":106
 * 
 * cdef inline double pdtri_unsafe(double k, double y) nogil:
 *     if npy_isnan(k):             # <<<<<<<<<<<<<<
 *         return k
 *     _legacy_cast_check("pdtri", k, 0)
 */
  }

  /* "_legacy.pxd":108
 *     if npy_isnan(k):
 *         return k
 *     _legacy_cast_check("pdtri", k, 0)             # <<<<<<<<<<<<<<
 *     return pdtri(<int>k, y)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"pdtri"), __pyx_v_k, 0.0);

  /* "_legacy.pxd":109
 *         return k
 *     _legacy_cast_check("pdtri", k, 0)
 *     return pdtri(<int>k, y)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double kn_unsafe(double n, double x) nogil:
 */
  __pyx_r = pdtri(((int)__pyx_v_k), __pyx_v_y);
  goto __pyx_L0;

  /* "_legacy.pxd":105
 *     return nbdtri(<int>k, <int>n, p)
 * 
 * cdef inline double pdtri_unsafe(double k, double y) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(k):
 *         return k
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":111
 *     return pdtri(<int>k, y)
 * 
 * cdef inline double kn_unsafe(double n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_kn_unsafe(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":112
 * 
 * cdef inline double kn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("kn", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":113
 * cdef inline double kn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("kn", n, 0)
 *     return cbesk_wrap_real_int(<int>n, x)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":112
 * 
 * cdef inline double kn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("kn", n, 0)
 */
  }

  /* "_legacy.pxd":114
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("kn", n, 0)             # <<<<<<<<<<<<<<
 *     return cbesk_wrap_real_int(<int>n, x)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"kn"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":115
 *         return n
 *     _legacy_cast_check("kn", n, 0)
 *     return cbesk_wrap_real_int(<int>n, x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double yn_unsafe(double n, double x) nogil:
 */
  __pyx_r = cbesk_wrap_real_int(((int)__pyx_v_n), __pyx_v_x);
  goto __pyx_L0;

  /* "_legacy.pxd":111
 *     return pdtri(<int>k, y)
 * 
 * cdef inline double kn_unsafe(double n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":117
 *     return cbesk_wrap_real_int(<int>n, x)
 * 
 * cdef inline double yn_unsafe(double n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_yn_unsafe(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":118
 * 
 * cdef inline double yn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("yn", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":119
 * cdef inline double yn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("yn", n, 0)
 *     return yn(<int>n, x)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":118
 * 
 * cdef inline double yn_unsafe(double n, double x) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("yn", n, 0)
 */
  }

  /* "_legacy.pxd":120
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("yn", n, 0)             # <<<<<<<<<<<<<<
 *     return yn(<int>n, x)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"yn"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":121
 *         return n
 *     _legacy_cast_check("yn", n, 0)
 *     return yn(<int>n, x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double smirnov_unsafe(double n, double e) nogil:
 */
  __pyx_r = yn(((int)__pyx_v_n), __pyx_v_x);
  goto __pyx_L0;

  /* "_legacy.pxd":117
 *     return cbesk_wrap_real_int(<int>n, x)
 * 
 * cdef inline double yn_unsafe(double n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":123
 *     return yn(<int>n, x)
 * 
 * cdef inline double smirnov_unsafe(double n, double e) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_smirnov_unsafe(double __pyx_v_n, double __pyx_v_e) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":124
 * 
 * cdef inline double smirnov_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnov", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":125
 * cdef inline double smirnov_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("smirnov", n, 0)
 *     return smirnov(<int>n, e)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":124
 * 
 * cdef inline double smirnov_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnov", n, 0)
 */
  }

  /* "_legacy.pxd":126
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("smirnov", n, 0)             # <<<<<<<<<<<<<<
 *     return smirnov(<int>n, e)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"smirnov"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":127
 *         return n
 *     _legacy_cast_check("smirnov", n, 0)
 *     return smirnov(<int>n, e)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double smirnovc_unsafe(double n, double e) nogil:
 */
  __pyx_r = smirnov(((int)__pyx_v_n), __pyx_v_e);
  goto __pyx_L0;

  /* "_legacy.pxd":123
 *     return yn(<int>n, x)
 * 
 * cdef inline double smirnov_unsafe(double n, double e) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":129
 *     return smirnov(<int>n, e)
 * 
 * cdef inline double smirnovc_unsafe(double n, double e) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_smirnovc_unsafe(double __pyx_v_n, double __pyx_v_e) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":130
 * 
 * cdef inline double smirnovc_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovc", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":131
 * cdef inline double smirnovc_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("smirnovc", n, 0)
 *     return smirnovc(<int>n, e)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":130
 * 
 * cdef inline double smirnovc_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovc", n, 0)
 */
  }

  /* "_legacy.pxd":132
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("smirnovc", n, 0)             # <<<<<<<<<<<<<<
 *     return smirnovc(<int>n, e)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"smirnovc"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":133
 *         return n
 *     _legacy_cast_check("smirnovc", n, 0)
 *     return smirnovc(<int>n, e)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double smirnovp_unsafe(double n, double e) nogil:
 */
  __pyx_r = smirnovc(((int)__pyx_v_n), __pyx_v_e);
  goto __pyx_L0;

  /* "_legacy.pxd":129
 *     return smirnov(<int>n, e)
 * 
 * cdef inline double smirnovc_unsafe(double n, double e) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":135
 *     return smirnovc(<int>n, e)
 * 
 * cdef inline double smirnovp_unsafe(double n, double e) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_smirnovp_unsafe(double __pyx_v_n, double __pyx_v_e) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":136
 * 
 * cdef inline double smirnovp_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovp", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":137
 * cdef inline double smirnovp_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("smirnovp", n, 0)
 *     return smirnovp(<int>n, e)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":136
 * 
 * cdef inline double smirnovp_unsafe(double n, double e) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovp", n, 0)
 */
  }

  /* "_legacy.pxd":138
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("smirnovp", n, 0)             # <<<<<<<<<<<<<<
 *     return smirnovp(<int>n, e)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"smirnovp"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":139
 *         return n
 *     _legacy_cast_check("smirnovp", n, 0)
 *     return smirnovp(<int>n, e)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double smirnovi_unsafe(double n, double p) nogil:
 */
  __pyx_r = smirnovp(((int)__pyx_v_n), __pyx_v_e);
  goto __pyx_L0;

  /* "_legacy.pxd":135
 *     return smirnovc(<int>n, e)
 * 
 * cdef inline double smirnovp_unsafe(double n, double e) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":141
 *     return smirnovp(<int>n, e)
 * 
 * cdef inline double smirnovi_unsafe(double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_smirnovi_unsafe(double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":142
 * 
 * cdef inline double smirnovi_unsafe(double n, double p) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovi", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":143
 * cdef inline double smirnovi_unsafe(double n, double p) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("smirnovi", n, 0)
 *     return smirnovi(<int>n, p)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":142
 * 
 * cdef inline double smirnovi_unsafe(double n, double p) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovi", n, 0)
 */
  }

  /* "_legacy.pxd":144
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("smirnovi", n, 0)             # <<<<<<<<<<<<<<
 *     return smirnovi(<int>n, p)
 * 
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"smirnovi"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":145
 *         return n
 *     _legacy_cast_check("smirnovi", n, 0)
 *     return smirnovi(<int>n, p)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double smirnovci_unsafe(double n, double p) nogil:
 */
  __pyx_r = smirnovi(((int)__pyx_v_n), __pyx_v_p);
  goto __pyx_L0;

  /* "_legacy.pxd":141
 *     return smirnovp(<int>n, e)
 * 
 * cdef inline double smirnovi_unsafe(double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_legacy.pxd":147
 *     return smirnovi(<int>n, p)
 * 
 * cdef inline double smirnovci_unsafe(double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_legacy_smirnovci_unsafe(double __pyx_v_n, double __pyx_v_p) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_legacy.pxd":148
 * 
 * cdef inline double smirnovci_unsafe(double n, double p) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovci", n, 0)
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_n) != 0);
  if (__pyx_t_1) {

    /* "_legacy.pxd":149
 * cdef inline double smirnovci_unsafe(double n, double p) nogil:
 *     if npy_isnan(n):
 *         return n             # <<<<<<<<<<<<<<
 *     _legacy_cast_check("smirnovci", n, 0)
 *     return smirnovci(<int>n, p)
 */
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;

    /* "_legacy.pxd":148
 * 
 * cdef inline double smirnovci_unsafe(double n, double p) nogil:
 *     if npy_isnan(n):             # <<<<<<<<<<<<<<
 *         return n
 *     _legacy_cast_check("smirnovci", n, 0)
 */
  }

  /* "_legacy.pxd":150
 *     if npy_isnan(n):
 *         return n
 *     _legacy_cast_check("smirnovci", n, 0)             # <<<<<<<<<<<<<<
 *     return smirnovci(<int>n, p)
 */
  __pyx_f_5scipy_7special_7_legacy__legacy_cast_check(((char *)"smirnovci"), __pyx_v_n, 0.0);

  /* "_legacy.pxd":151
 *         return n
 *     _legacy_cast_check("smirnovci", n, 0)
 *     return smirnovci(<int>n, p)             # <<<<<<<<<<<<<<
 */
  __pyx_r = smirnovci(((int)__pyx_v_n), __pyx_v_p);
  goto __pyx_L0;

  /* "_legacy.pxd":147
 *     return smirnovi(<int>n, p)
 * 
 * cdef inline double smirnovci_unsafe(double n, double p) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(n):
 *         return n
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":44
 * # Fused type wrappers
 * 
 * cdef inline number_t hyp2f1(double a, double b, double c, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(double __pyx_v_a, double __pyx_v_b, double __pyx_v_c, double __pyx_v_z) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":47
 *     cdef npy_cdouble r
 *     if number_t is double:
 *         return hyp2f1_wrap(a, b, c, z)             # <<<<<<<<<<<<<<
 *     else:
 *         r = chyp2f1_wrap(a, b, c, npy_cdouble_from_double_complex(z))
 */
  __pyx_r = hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_z);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":44
 * # Fused type wrappers
 * 
 * cdef inline number_t hyp2f1(double a, double b, double c, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(double __pyx_v_a, double __pyx_v_b, double __pyx_v_c, __pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":49
 *         return hyp2f1_wrap(a, b, c, z)
 *     else:
 *         r = chyp2f1_wrap(a, b, c, npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 * 
 */
  __pyx_v_r = chyp2f1_wrap(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "orthogonal_eval.pxd":50
 *     else:
 *         r = chyp2f1_wrap(a, b, c, npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t hyp1f1(double a, double b, number_t z) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":44
 * # Fused type wrappers
 * 
 * cdef inline number_t hyp2f1(double a, double b, double c, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":52
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t hyp1f1(double a, double b, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp1f1(double __pyx_v_a, double __pyx_v_b, double __pyx_v_z) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":55
 *     cdef npy_cdouble r
 *     if number_t is double:
 *         return hyp1f1_wrap(a, b, z)             # <<<<<<<<<<<<<<
 *     else:
 *         r = chyp1f1_wrap(a, b, npy_cdouble_from_double_complex(z))
 */
  __pyx_r = hyp1f1_wrap(__pyx_v_a, __pyx_v_b, __pyx_v_z);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":52
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t hyp1f1(double a, double b, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp1f1(double __pyx_v_a, double __pyx_v_b, __pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":57
 *         return hyp1f1_wrap(a, b, z)
 *     else:
 *         r = chyp1f1_wrap(a, b, npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(r)
 * 
 */
  __pyx_v_r = chyp1f1_wrap(__pyx_v_a, __pyx_v_b, __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "orthogonal_eval.pxd":58
 *     else:
 *         r = chyp1f1_wrap(a, b, npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 * 
 * cdef extern from "numpy/npy_math.h":
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":52
 *         return double_complex_from_npy_cdouble(r)
 * 
 * cdef inline number_t hyp1f1(double a, double b, number_t z) nogil:             # <<<<<<<<<<<<<<
 *     cdef npy_cdouble r
 *     if number_t is double:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":68
 * 
 * @cython.cdivision(True)
 * cdef inline double binom(double n, double k) nogil:             # <<<<<<<<<<<<<<
 *     cdef double kx, nx, num, den, dk, sgn
 *     cdef int i
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_binom(double __pyx_v_n, double __pyx_v_k) {
  double __pyx_v_kx;
  double __pyx_v_nx;
  double __pyx_v_num;
  double __pyx_v_den;
  double __pyx_v_dk;
  double __pyx_v_sgn;
  int __pyx_v_i;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;
  int __pyx_t_5;
  double __pyx_t_6;

  /* "orthogonal_eval.pxd":72
 *     cdef int i
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         nx = floor(n)
 *         if n == nx:
 */
  __pyx_t_1 = ((__pyx_v_n < 0.0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":73
 * 
 *     if n < 0:
 *         nx = floor(n)             # <<<<<<<<<<<<<<
 *         if n == nx:
 *             # undefined
 */
    __pyx_v_nx = floor(__pyx_v_n);

    /* "orthogonal_eval.pxd":74
 *     if n < 0:
 *         nx = floor(n)
 *         if n == nx:             # <<<<<<<<<<<<<<
 *             # undefined
 *             return nan
 */
    __pyx_t_1 = ((__pyx_v_n == __pyx_v_nx) != 0);
    if (__pyx_t_1) {

      /* "orthogonal_eval.pxd":76
 *         if n == nx:
 *             # undefined
 *             return nan             # <<<<<<<<<<<<<<
 * 
 *     kx = floor(k)
 */
      __pyx_r = NPY_NAN;
      goto __pyx_L0;

      /* "orthogonal_eval.pxd":74
 *     if n < 0:
 *         nx = floor(n)
 *         if n == nx:             # <<<<<<<<<<<<<<
 *             # undefined
 *             return nan
 */
    }

    /* "orthogonal_eval.pxd":72
 *     cdef int i
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         nx = floor(n)
 *         if n == nx:
 */
  }

  /* "orthogonal_eval.pxd":78
 *             return nan
 * 
 *     kx = floor(k)             # <<<<<<<<<<<<<<
 *     if k == kx and (fabs(n) > 1e-8 or n == 0):
 *         # Integer case: use multiplication formula for less rounding error
 */
  __pyx_v_kx = floor(__pyx_v_k);

  /* "orthogonal_eval.pxd":79
 * 
 *     kx = floor(k)
 *     if k == kx and (fabs(n) > 1e-8 or n == 0):             # <<<<<<<<<<<<<<
 *         # Integer case: use multiplication formula for less rounding error
 *         # for cases where the result is an integer.
 */
  __pyx_t_2 = ((__pyx_v_k == __pyx_v_kx) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((fabs(__pyx_v_n) > 1e-8) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_n == 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":86
 *         # precision.
 * 
 *         nx = floor(n)             # <<<<<<<<<<<<<<
 *         if nx == n and kx > nx/2 and nx > 0:
 *             # Reduce kx by symmetry
 */
    __pyx_v_nx = floor(__pyx_v_n);

    /* "orthogonal_eval.pxd":87
 * 
 *         nx = floor(n)
 *         if nx == n and kx > nx/2 and nx > 0:             # <<<<<<<<<<<<<<
 *             # Reduce kx by symmetry
 *             kx = nx - kx
 */
    __pyx_t_2 = ((__pyx_v_nx == __pyx_v_n) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_kx > (__pyx_v_nx / 2.0)) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_nx > 0.0) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_1) {

      /* "orthogonal_eval.pxd":89
 *         if nx == n and kx > nx/2 and nx > 0:
 *             # Reduce kx by symmetry
 *             kx = nx - kx             # <<<<<<<<<<<<<<
 * 
 *         if kx >= 0 and kx < 20:
 */
      __pyx_v_kx = (__pyx_v_nx - __pyx_v_kx);

      /* "orthogonal_eval.pxd":87
 * 
 *         nx = floor(n)
 *         if nx == n and kx > nx/2 and nx > 0:             # <<<<<<<<<<<<<<
 *             # Reduce kx by symmetry
 *             kx = nx - kx
 */
    }

    /* "orthogonal_eval.pxd":91
 *             kx = nx - kx
 * 
 *         if kx >= 0 and kx < 20:             # <<<<<<<<<<<<<<
 *             num = 1.0
 *             den = 1.0
 */
    __pyx_t_2 = ((__pyx_v_kx >= 0.0) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L14_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_kx < 20.0) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L14_bool_binop_done:;
    if (__pyx_t_1) {

      /* "orthogonal_eval.pxd":92
 * 
 *         if kx >= 0 and kx < 20:
 *             num = 1.0             # <<<<<<<<<<<<<<
 *             den = 1.0
 *             for i in range(1, 1 + <int>kx):
 */
      __pyx_v_num = 1.0;

      /* "orthogonal_eval.pxd":93
 *         if kx >= 0 and kx < 20:
 *             num = 1.0
 *             den = 1.0             # <<<<<<<<<<<<<<
 *             for i in range(1, 1 + <int>kx):
 *                 num *= i + n - kx
 */
      __pyx_v_den = 1.0;

      /* "orthogonal_eval.pxd":94
 *             num = 1.0
 *             den = 1.0
 *             for i in range(1, 1 + <int>kx):             # <<<<<<<<<<<<<<
 *                 num *= i + n - kx
 *                 den *= i
 */
      __pyx_t_3 = (1 + ((int)__pyx_v_kx));
      __pyx_t_4 = __pyx_t_3;
      for (__pyx_t_5 = 1; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
        __pyx_v_i = __pyx_t_5;

        /* "orthogonal_eval.pxd":95
 *             den = 1.0
 *             for i in range(1, 1 + <int>kx):
 *                 num *= i + n - kx             # <<<<<<<<<<<<<<
 *                 den *= i
 *                 if fabs(num) > 1e50:
 */
        __pyx_v_num = (__pyx_v_num * ((__pyx_v_i + __pyx_v_n) - __pyx_v_kx));

        /* "orthogonal_eval.pxd":96
 *             for i in range(1, 1 + <int>kx):
 *                 num *= i + n - kx
 *                 den *= i             # <<<<<<<<<<<<<<
 *                 if fabs(num) > 1e50:
 *                     num /= den
 */
        __pyx_v_den = (__pyx_v_den * __pyx_v_i);

        /* "orthogonal_eval.pxd":97
 *                 num *= i + n - kx
 *                 den *= i
 *                 if fabs(num) > 1e50:             # <<<<<<<<<<<<<<
 *                     num /= den
 *                     den = 1.0
 */
        __pyx_t_1 = ((fabs(__pyx_v_num) > 1e50) != 0);
        if (__pyx_t_1) {

          /* "orthogonal_eval.pxd":98
 *                 den *= i
 *                 if fabs(num) > 1e50:
 *                     num /= den             # <<<<<<<<<<<<<<
 *                     den = 1.0
 *             return num/den
 */
          __pyx_v_num = (__pyx_v_num / __pyx_v_den);

          /* "orthogonal_eval.pxd":99
 *                 if fabs(num) > 1e50:
 *                     num /= den
 *                     den = 1.0             # <<<<<<<<<<<<<<
 *             return num/den
 * 
 */
          __pyx_v_den = 1.0;

          /* "orthogonal_eval.pxd":97
 *                 num *= i + n - kx
 *                 den *= i
 *                 if fabs(num) > 1e50:             # <<<<<<<<<<<<<<
 *                     num /= den
 *                     den = 1.0
 */
        }
      }

      /* "orthogonal_eval.pxd":100
 *                     num /= den
 *                     den = 1.0
 *             return num/den             # <<<<<<<<<<<<<<
 * 
 *     # general case:
 */
      __pyx_r = (__pyx_v_num / __pyx_v_den);
      goto __pyx_L0;

      /* "orthogonal_eval.pxd":91
 *             kx = nx - kx
 * 
 *         if kx >= 0 and kx < 20:             # <<<<<<<<<<<<<<
 *             num = 1.0
 *             den = 1.0
 */
    }

    /* "orthogonal_eval.pxd":79
 * 
 *     kx = floor(k)
 *     if k == kx and (fabs(n) > 1e-8 or n == 0):             # <<<<<<<<<<<<<<
 *         # Integer case: use multiplication formula for less rounding error
 *         # for cases where the result is an integer.
 */
  }

  /* "orthogonal_eval.pxd":103
 * 
 *     # general case:
 *     if n >= 1e10*k and k > 0:             # <<<<<<<<<<<<<<
 *         # avoid under/overflows in intermediate results
 *         return exp(-lbeta(1 + n - k, 1 + k) - log(n + 1))
 */
  __pyx_t_2 = ((__pyx_v_n >= (1e10 * __pyx_v_k)) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L20_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_k > 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L20_bool_binop_done:;
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":105
 *     if n >= 1e10*k and k > 0:
 *         # avoid under/overflows in intermediate results
 *         return exp(-lbeta(1 + n - k, 1 + k) - log(n + 1))             # <<<<<<<<<<<<<<
 *     elif k > 1e8*fabs(n):
 *         # avoid loss of precision
 */
    __pyx_r = exp(((-lbeta(((1.0 + __pyx_v_n) - __pyx_v_k), (1.0 + __pyx_v_k))) - log((__pyx_v_n + 1.0))));
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":103
 * 
 *     # general case:
 *     if n >= 1e10*k and k > 0:             # <<<<<<<<<<<<<<
 *         # avoid under/overflows in intermediate results
 *         return exp(-lbeta(1 + n - k, 1 + k) - log(n + 1))
 */
  }

  /* "orthogonal_eval.pxd":106
 *         # avoid under/overflows in intermediate results
 *         return exp(-lbeta(1 + n - k, 1 + k) - log(n + 1))
 *     elif k > 1e8*fabs(n):             # <<<<<<<<<<<<<<
 *         # avoid loss of precision
 *         num = Gamma(1 + n) / fabs(k) + Gamma(1 + n) * n / (2*k**2) # + ...
 */
  __pyx_t_1 = ((__pyx_v_k > (1e8 * fabs(__pyx_v_n))) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":108
 *     elif k > 1e8*fabs(n):
 *         # avoid loss of precision
 *         num = Gamma(1 + n) / fabs(k) + Gamma(1 + n) * n / (2*k**2) # + ...             # <<<<<<<<<<<<<<
 *         num /= pi * fabs(k)**n
 *         if k > 0:
 */
    __pyx_v_num = ((Gamma((1.0 + __pyx_v_n)) / fabs(__pyx_v_k)) + ((Gamma((1.0 + __pyx_v_n)) * __pyx_v_n) / (2.0 * pow(__pyx_v_k, 2.0))));

    /* "orthogonal_eval.pxd":109
 *         # avoid loss of precision
 *         num = Gamma(1 + n) / fabs(k) + Gamma(1 + n) * n / (2*k**2) # + ...
 *         num /= pi * fabs(k)**n             # <<<<<<<<<<<<<<
 *         if k > 0:
 *             kx = floor(k)
 */
    __pyx_v_num = (__pyx_v_num / (M_PI * pow(fabs(__pyx_v_k), __pyx_v_n)));

    /* "orthogonal_eval.pxd":110
 *         num = Gamma(1 + n) / fabs(k) + Gamma(1 + n) * n / (2*k**2) # + ...
 *         num /= pi * fabs(k)**n
 *         if k > 0:             # <<<<<<<<<<<<<<
 *             kx = floor(k)
 *             if <int>kx == kx:
 */
    __pyx_t_1 = ((__pyx_v_k > 0.0) != 0);
    if (__pyx_t_1) {

      /* "orthogonal_eval.pxd":111
 *         num /= pi * fabs(k)**n
 *         if k > 0:
 *             kx = floor(k)             # <<<<<<<<<<<<<<
 *             if <int>kx == kx:
 *                 dk = k - kx
 */
      __pyx_v_kx = floor(__pyx_v_k);

      /* "orthogonal_eval.pxd":112
 *         if k > 0:
 *             kx = floor(k)
 *             if <int>kx == kx:             # <<<<<<<<<<<<<<
 *                 dk = k - kx
 *                 sgn = 1 if (<int>kx) % 2 == 0 else -1
 */
      __pyx_t_1 = ((((int)__pyx_v_kx) == __pyx_v_kx) != 0);
      if (__pyx_t_1) {

        /* "orthogonal_eval.pxd":113
 *             kx = floor(k)
 *             if <int>kx == kx:
 *                 dk = k - kx             # <<<<<<<<<<<<<<
 *                 sgn = 1 if (<int>kx) % 2 == 0 else -1
 *             else:
 */
        __pyx_v_dk = (__pyx_v_k - __pyx_v_kx);

        /* "orthogonal_eval.pxd":114
 *             if <int>kx == kx:
 *                 dk = k - kx
 *                 sgn = 1 if (<int>kx) % 2 == 0 else -1             # <<<<<<<<<<<<<<
 *             else:
 *                 dk = k
 */
        if ((((((int)__pyx_v_kx) % 2) == 0) != 0)) {
          __pyx_t_6 = 1.0;
        } else {
          __pyx_t_6 = -1.0;
        }
        __pyx_v_sgn = __pyx_t_6;

        /* "orthogonal_eval.pxd":112
 *         if k > 0:
 *             kx = floor(k)
 *             if <int>kx == kx:             # <<<<<<<<<<<<<<
 *                 dk = k - kx
 *                 sgn = 1 if (<int>kx) % 2 == 0 else -1
 */
        goto __pyx_L23;
      }

      /* "orthogonal_eval.pxd":116
 *                 sgn = 1 if (<int>kx) % 2 == 0 else -1
 *             else:
 *                 dk = k             # <<<<<<<<<<<<<<
 *                 sgn = 1
 *             return num * sin((dk-n)*pi) * sgn
 */
      /*else*/ {
        __pyx_v_dk = __pyx_v_k;

        /* "orthogonal_eval.pxd":117
 *             else:
 *                 dk = k
 *                 sgn = 1             # <<<<<<<<<<<<<<
 *             return num * sin((dk-n)*pi) * sgn
 *         else:
 */
        __pyx_v_sgn = 1.0;
      }
      __pyx_L23:;

      /* "orthogonal_eval.pxd":118
 *                 dk = k
 *                 sgn = 1
 *             return num * sin((dk-n)*pi) * sgn             # <<<<<<<<<<<<<<
 *         else:
 *             kx = floor(k)
 */
      __pyx_r = ((__pyx_v_num * sin(((__pyx_v_dk - __pyx_v_n) * M_PI))) * __pyx_v_sgn);
      goto __pyx_L0;

      /* "orthogonal_eval.pxd":110
 *         num = Gamma(1 + n) / fabs(k) + Gamma(1 + n) * n / (2*k**2) # + ...
 *         num /= pi * fabs(k)**n
 *         if k > 0:             # <<<<<<<<<<<<<<
 *             kx = floor(k)
 *             if <int>kx == kx:
 */
    }

    /* "orthogonal_eval.pxd":120
 *             return num * sin((dk-n)*pi) * sgn
 *         else:
 *             kx = floor(k)             # <<<<<<<<<<<<<<
 *             if <int>kx == kx:
 *                 return 0
 */
    /*else*/ {
      __pyx_v_kx = floor(__pyx_v_k);

      /* "orthogonal_eval.pxd":121
 *         else:
 *             kx = floor(k)
 *             if <int>kx == kx:             # <<<<<<<<<<<<<<
 *                 return 0
 *             else:
 */
      __pyx_t_1 = ((((int)__pyx_v_kx) == __pyx_v_kx) != 0);
      if (__pyx_t_1) {

        /* "orthogonal_eval.pxd":122
 *             kx = floor(k)
 *             if <int>kx == kx:
 *                 return 0             # <<<<<<<<<<<<<<
 *             else:
 *                 return num * sin(k*pi)
 */
        __pyx_r = 0.0;
        goto __pyx_L0;

        /* "orthogonal_eval.pxd":121
 *         else:
 *             kx = floor(k)
 *             if <int>kx == kx:             # <<<<<<<<<<<<<<
 *                 return 0
 *             else:
 */
      }

      /* "orthogonal_eval.pxd":124
 *                 return 0
 *             else:
 *                 return num * sin(k*pi)             # <<<<<<<<<<<<<<
 *     else:
 *         return 1/(n + 1)/beta(1 + n - k, 1 + k)
 */
      /*else*/ {
        __pyx_r = (__pyx_v_num * sin((__pyx_v_k * M_PI)));
        goto __pyx_L0;
      }
    }

    /* "orthogonal_eval.pxd":106
 *         # avoid under/overflows in intermediate results
 *         return exp(-lbeta(1 + n - k, 1 + k) - log(n + 1))
 *     elif k > 1e8*fabs(n):             # <<<<<<<<<<<<<<
 *         # avoid loss of precision
 *         num = Gamma(1 + n) / fabs(k) + Gamma(1 + n) * n / (2*k**2) # + ...
 */
  }

  /* "orthogonal_eval.pxd":126
 *                 return num * sin(k*pi)
 *     else:
 *         return 1/(n + 1)/beta(1 + n - k, 1 + k)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  /*else*/ {
    __pyx_r = ((1.0 / (__pyx_v_n + 1.0)) / beta(((1.0 + __pyx_v_n) - __pyx_v_k), (1.0 + __pyx_v_k)));
    goto __pyx_L0;
  }

  /* "orthogonal_eval.pxd":68
 * 
 * @cython.cdivision(True)
 * cdef inline double binom(double n, double k) nogil:             # <<<<<<<<<<<<<<
 *     cdef double kx, nx, num, den, dk, sgn
 *     cdef int i
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":132
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_jacobi(double n, double alpha, double beta, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(double __pyx_v_n, double __pyx_v_alpha, double __pyx_v_beta, double __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  double __pyx_v_g;
  double __pyx_r;

  /* "orthogonal_eval.pxd":136
 *     cdef number_t g
 * 
 *     d = binom(n+alpha, n)             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n + alpha + beta + 1
 */
  __pyx_v_d = __pyx_f_5scipy_7special_15orthogonal_eval_binom((__pyx_v_n + __pyx_v_alpha), __pyx_v_n);

  /* "orthogonal_eval.pxd":137
 * 
 *     d = binom(n+alpha, n)
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n + alpha + beta + 1
 *     c = alpha + 1
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":138
 *     d = binom(n+alpha, n)
 *     a = -n
 *     b = n + alpha + beta + 1             # <<<<<<<<<<<<<<
 *     c = alpha + 1
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = (((__pyx_v_n + __pyx_v_alpha) + __pyx_v_beta) + 1.0);

  /* "orthogonal_eval.pxd":139
 *     a = -n
 *     b = n + alpha + beta + 1
 *     c = alpha + 1             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return d * hyp2f1(a, b, c, g)
 */
  __pyx_v_c = (__pyx_v_alpha + 1.0);

  /* "orthogonal_eval.pxd":140
 *     b = n + alpha + beta + 1
 *     c = alpha + 1
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return d * hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = (0.5 * (1.0 - __pyx_v_x));

  /* "orthogonal_eval.pxd":141
 *     c = alpha + 1
 *     g = 0.5*(1-x)
 *     return d * hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = (__pyx_v_d * __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":132
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_jacobi(double n, double alpha, double beta, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(double __pyx_v_n, double __pyx_v_alpha, double __pyx_v_beta, __pyx_t_double_complex __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  __pyx_t_double_complex __pyx_v_g;
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":136
 *     cdef number_t g
 * 
 *     d = binom(n+alpha, n)             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n + alpha + beta + 1
 */
  __pyx_v_d = __pyx_f_5scipy_7special_15orthogonal_eval_binom((__pyx_v_n + __pyx_v_alpha), __pyx_v_n);

  /* "orthogonal_eval.pxd":137
 * 
 *     d = binom(n+alpha, n)
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n + alpha + beta + 1
 *     c = alpha + 1
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":138
 *     d = binom(n+alpha, n)
 *     a = -n
 *     b = n + alpha + beta + 1             # <<<<<<<<<<<<<<
 *     c = alpha + 1
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = (((__pyx_v_n + __pyx_v_alpha) + __pyx_v_beta) + 1.0);

  /* "orthogonal_eval.pxd":139
 *     a = -n
 *     b = n + alpha + beta + 1
 *     c = alpha + 1             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return d * hyp2f1(a, b, c, g)
 */
  __pyx_v_c = (__pyx_v_alpha + 1.0);

  /* "orthogonal_eval.pxd":140
 *     b = n + alpha + beta + 1
 *     c = alpha + 1
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return d * hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_x));

  /* "orthogonal_eval.pxd":141
 *     c = alpha + 1
 *     g = 0.5*(1-x)
 *     return d * hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_d, 0), __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":132
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_jacobi(double n, double alpha, double beta, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":144
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_jacobi_l(long n, double alpha, double beta, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk
 *     cdef double p, d
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi_l(long __pyx_v_n, double __pyx_v_alpha, double __pyx_v_beta, double __pyx_v_x) {
  long __pyx_v_kk;
  double __pyx_v_p;
  double __pyx_v_d;
  double __pyx_v_k;
  double __pyx_v_t;
  double __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;

  /* "orthogonal_eval.pxd":149
 *     cdef double k, t
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         return eval_jacobi(n, alpha, beta, x)
 *     elif n == 0:
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":150
 * 
 *     if n < 0:
 *         return eval_jacobi(n, alpha, beta, x)             # <<<<<<<<<<<<<<
 *     elif n == 0:
 *         return 1.0
 */
    __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(__pyx_v_n, __pyx_v_alpha, __pyx_v_beta, __pyx_v_x);
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":149
 *     cdef double k, t
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         return eval_jacobi(n, alpha, beta, x)
 *     elif n == 0:
 */
  }

  /* "orthogonal_eval.pxd":151
 *     if n < 0:
 *         return eval_jacobi(n, alpha, beta, x)
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":152
 *         return eval_jacobi(n, alpha, beta, x)
 *     elif n == 0:
 *         return 1.0             # <<<<<<<<<<<<<<
 *     elif n == 1:
 *         return 0.5*(2*(alpha+1)+(alpha+beta+2)*(x-1))
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":151
 *     if n < 0:
 *         return eval_jacobi(n, alpha, beta, x)
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  }

  /* "orthogonal_eval.pxd":153
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return 0.5*(2*(alpha+1)+(alpha+beta+2)*(x-1))
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 1) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":154
 *         return 1.0
 *     elif n == 1:
 *         return 0.5*(2*(alpha+1)+(alpha+beta+2)*(x-1))             # <<<<<<<<<<<<<<
 *     else:
 *         d = (alpha+beta+2)*(x - 1) / (2*(alpha+1))
 */
    __pyx_r = (0.5 * ((2.0 * (__pyx_v_alpha + 1.0)) + (((__pyx_v_alpha + __pyx_v_beta) + 2.0) * (__pyx_v_x - 1.0))));
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":153
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return 0.5*(2*(alpha+1)+(alpha+beta+2)*(x-1))
 *     else:
 */
  }

  /* "orthogonal_eval.pxd":156
 *         return 0.5*(2*(alpha+1)+(alpha+beta+2)*(x-1))
 *     else:
 *         d = (alpha+beta+2)*(x - 1) / (2*(alpha+1))             # <<<<<<<<<<<<<<
 *         p = d + 1
 *         for kk in range(n-1):
 */
  /*else*/ {
    __pyx_v_d = ((((__pyx_v_alpha + __pyx_v_beta) + 2.0) * (__pyx_v_x - 1.0)) / (2.0 * (__pyx_v_alpha + 1.0)));

    /* "orthogonal_eval.pxd":157
 *     else:
 *         d = (alpha+beta+2)*(x - 1) / (2*(alpha+1))
 *         p = d + 1             # <<<<<<<<<<<<<<
 *         for kk in range(n-1):
 *             k = kk+1.0
 */
    __pyx_v_p = (__pyx_v_d + 1.0);

    /* "orthogonal_eval.pxd":158
 *         d = (alpha+beta+2)*(x - 1) / (2*(alpha+1))
 *         p = d + 1
 *         for kk in range(n-1):             # <<<<<<<<<<<<<<
 *             k = kk+1.0
 *             t = 2*k+alpha+beta
 */
    __pyx_t_2 = (__pyx_v_n - 1);
    __pyx_t_3 = __pyx_t_2;
    for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
      __pyx_v_kk = __pyx_t_4;

      /* "orthogonal_eval.pxd":159
 *         p = d + 1
 *         for kk in range(n-1):
 *             k = kk+1.0             # <<<<<<<<<<<<<<
 *             t = 2*k+alpha+beta
 *             d = ((t*(t+1)*(t+2))*(x-1)*p + 2*k*(k+beta)*(t+2)*d) / (2*(k+alpha+1)*(k+alpha+beta+1)*t)
 */
      __pyx_v_k = (__pyx_v_kk + 1.0);

      /* "orthogonal_eval.pxd":160
 *         for kk in range(n-1):
 *             k = kk+1.0
 *             t = 2*k+alpha+beta             # <<<<<<<<<<<<<<
 *             d = ((t*(t+1)*(t+2))*(x-1)*p + 2*k*(k+beta)*(t+2)*d) / (2*(k+alpha+1)*(k+alpha+beta+1)*t)
 *             p = d + p
 */
      __pyx_v_t = (((2.0 * __pyx_v_k) + __pyx_v_alpha) + __pyx_v_beta);

      /* "orthogonal_eval.pxd":161
 *             k = kk+1.0
 *             t = 2*k+alpha+beta
 *             d = ((t*(t+1)*(t+2))*(x-1)*p + 2*k*(k+beta)*(t+2)*d) / (2*(k+alpha+1)*(k+alpha+beta+1)*t)             # <<<<<<<<<<<<<<
 *             p = d + p
 *         return binom(n+alpha, n)*p
 */
      __pyx_v_d = ((((((__pyx_v_t * (__pyx_v_t + 1.0)) * (__pyx_v_t + 2.0)) * (__pyx_v_x - 1.0)) * __pyx_v_p) + ((((2.0 * __pyx_v_k) * (__pyx_v_k + __pyx_v_beta)) * (__pyx_v_t + 2.0)) * __pyx_v_d)) / (((2.0 * ((__pyx_v_k + __pyx_v_alpha) + 1.0)) * (((__pyx_v_k + __pyx_v_alpha) + __pyx_v_beta) + 1.0)) * __pyx_v_t));

      /* "orthogonal_eval.pxd":162
 *             t = 2*k+alpha+beta
 *             d = ((t*(t+1)*(t+2))*(x-1)*p + 2*k*(k+beta)*(t+2)*d) / (2*(k+alpha+1)*(k+alpha+beta+1)*t)
 *             p = d + p             # <<<<<<<<<<<<<<
 *         return binom(n+alpha, n)*p
 * 
 */
      __pyx_v_p = (__pyx_v_d + __pyx_v_p);
    }

    /* "orthogonal_eval.pxd":163
 *             d = ((t*(t+1)*(t+2))*(x-1)*p + 2*k*(k+beta)*(t+2)*d) / (2*(k+alpha+1)*(k+alpha+beta+1)*t)
 *             p = d + p
 *         return binom(n+alpha, n)*p             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
    __pyx_r = (__pyx_f_5scipy_7special_15orthogonal_eval_binom((__pyx_v_n + __pyx_v_alpha), __pyx_v_n) * __pyx_v_p);
    goto __pyx_L0;
  }

  /* "orthogonal_eval.pxd":144
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_jacobi_l(long n, double alpha, double beta, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk
 *     cdef double p, d
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":170
 * 
 * @cython.cdivision(True)
 * cdef inline number_t eval_sh_jacobi(double n, double p, double q, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_jacobi(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)
 * 
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi(double __pyx_v_n, double __pyx_v_p, double __pyx_v_q, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":171
 * @cython.cdivision(True)
 * cdef inline number_t eval_sh_jacobi(double n, double p, double q, number_t x) nogil:
 *     return eval_jacobi(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = (__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(__pyx_v_n, (__pyx_v_p - __pyx_v_q), (__pyx_v_q - 1.0), ((2.0 * __pyx_v_x) - 1.0)) / __pyx_f_5scipy_7special_15orthogonal_eval_binom((((2.0 * __pyx_v_n) + __pyx_v_p) - 1.0), __pyx_v_n));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":170
 * 
 * @cython.cdivision(True)
 * cdef inline number_t eval_sh_jacobi(double n, double p, double q, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_jacobi(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi(double __pyx_v_n, double __pyx_v_p, double __pyx_v_q, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":171
 * @cython.cdivision(True)
 * cdef inline number_t eval_sh_jacobi(double n, double p, double q, number_t x) nogil:
 *     return eval_jacobi(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = __Pyx_c_quot_double(__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi(__pyx_v_n, (__pyx_v_p - __pyx_v_q), (__pyx_v_q - 1.0), __Pyx_c_diff_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2, 0), __pyx_v_x), __pyx_t_double_complex_from_parts(1, 0))), __pyx_t_double_complex_from_parts(__pyx_f_5scipy_7special_15orthogonal_eval_binom((((2.0 * __pyx_v_n) + __pyx_v_p) - 1.0), __pyx_v_n), 0));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":170
 * 
 * @cython.cdivision(True)
 * cdef inline number_t eval_sh_jacobi(double n, double p, double q, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_jacobi(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":174
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_sh_jacobi_l(long n, double p, double q, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_jacobi_l(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi_l(long __pyx_v_n, double __pyx_v_p, double __pyx_v_q, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":175
 * @cython.cdivision(True)
 * cdef inline double eval_sh_jacobi_l(long n, double p, double q, double x) nogil:
 *     return eval_jacobi_l(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = (__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi_l(__pyx_v_n, (__pyx_v_p - __pyx_v_q), (__pyx_v_q - 1.0), ((2.0 * __pyx_v_x) - 1.0)) / __pyx_f_5scipy_7special_15orthogonal_eval_binom((((2 * __pyx_v_n) + __pyx_v_p) - 1.0), __pyx_v_n));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":174
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_sh_jacobi_l(long n, double p, double q, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_jacobi_l(n, p-q, q-1, 2*x-1) / binom(2*n + p - 1, n)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":182
 * 
 * @cython.cdivision(True)
 * cdef inline number_t eval_gegenbauer(double n, double alpha, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer(double __pyx_v_n, double __pyx_v_alpha, double __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  double __pyx_v_g;
  double __pyx_r;

  /* "orthogonal_eval.pxd":186
 *     cdef number_t g
 * 
 *     d = Gamma(n+2*alpha)/Gamma(1+n)/Gamma(2*alpha)             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n + 2*alpha
 */
  __pyx_v_d = ((Gamma((__pyx_v_n + (2.0 * __pyx_v_alpha))) / Gamma((1.0 + __pyx_v_n))) / Gamma((2.0 * __pyx_v_alpha)));

  /* "orthogonal_eval.pxd":187
 * 
 *     d = Gamma(n+2*alpha)/Gamma(1+n)/Gamma(2*alpha)
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n + 2*alpha
 *     c = alpha + 0.5
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":188
 *     d = Gamma(n+2*alpha)/Gamma(1+n)/Gamma(2*alpha)
 *     a = -n
 *     b = n + 2*alpha             # <<<<<<<<<<<<<<
 *     c = alpha + 0.5
 *     g = (1-x)/2.0
 */
  __pyx_v_b = (__pyx_v_n + (2.0 * __pyx_v_alpha));

  /* "orthogonal_eval.pxd":189
 *     a = -n
 *     b = n + 2*alpha
 *     c = alpha + 0.5             # <<<<<<<<<<<<<<
 *     g = (1-x)/2.0
 *     return d * hyp2f1(a, b, c, g)
 */
  __pyx_v_c = (__pyx_v_alpha + 0.5);

  /* "orthogonal_eval.pxd":190
 *     b = n + 2*alpha
 *     c = alpha + 0.5
 *     g = (1-x)/2.0             # <<<<<<<<<<<<<<
 *     return d * hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = ((1.0 - __pyx_v_x) / 2.0);

  /* "orthogonal_eval.pxd":191
 *     c = alpha + 0.5
 *     g = (1-x)/2.0
 *     return d * hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = (__pyx_v_d * __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":182
 * 
 * @cython.cdivision(True)
 * cdef inline number_t eval_gegenbauer(double n, double alpha, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer(double __pyx_v_n, double __pyx_v_alpha, __pyx_t_double_complex __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  __pyx_t_double_complex __pyx_v_g;
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":186
 *     cdef number_t g
 * 
 *     d = Gamma(n+2*alpha)/Gamma(1+n)/Gamma(2*alpha)             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n + 2*alpha
 */
  __pyx_v_d = ((Gamma((__pyx_v_n + (2.0 * __pyx_v_alpha))) / Gamma((1.0 + __pyx_v_n))) / Gamma((2.0 * __pyx_v_alpha)));

  /* "orthogonal_eval.pxd":187
 * 
 *     d = Gamma(n+2*alpha)/Gamma(1+n)/Gamma(2*alpha)
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n + 2*alpha
 *     c = alpha + 0.5
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":188
 *     d = Gamma(n+2*alpha)/Gamma(1+n)/Gamma(2*alpha)
 *     a = -n
 *     b = n + 2*alpha             # <<<<<<<<<<<<<<
 *     c = alpha + 0.5
 *     g = (1-x)/2.0
 */
  __pyx_v_b = (__pyx_v_n + (2.0 * __pyx_v_alpha));

  /* "orthogonal_eval.pxd":189
 *     a = -n
 *     b = n + 2*alpha
 *     c = alpha + 0.5             # <<<<<<<<<<<<<<
 *     g = (1-x)/2.0
 *     return d * hyp2f1(a, b, c, g)
 */
  __pyx_v_c = (__pyx_v_alpha + 0.5);

  /* "orthogonal_eval.pxd":190
 *     b = n + 2*alpha
 *     c = alpha + 0.5
 *     g = (1-x)/2.0             # <<<<<<<<<<<<<<
 *     return d * hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = __Pyx_c_quot_double(__Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_x), __pyx_t_double_complex_from_parts(2.0, 0));

  /* "orthogonal_eval.pxd":191
 *     c = alpha + 0.5
 *     g = (1-x)/2.0
 *     return d * hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_d, 0), __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":182
 * 
 * @cython.cdivision(True)
 * cdef inline number_t eval_gegenbauer(double n, double alpha, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":194
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_gegenbauer_l(long n, double alpha, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk
 *     cdef long a, b
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer_l(long __pyx_v_n, double __pyx_v_alpha, double __pyx_v_x) {
  long __pyx_v_kk;
  long __pyx_v_a;
  double __pyx_v_p;
  double __pyx_v_d;
  double __pyx_v_k;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  double __pyx_t_3;
  long __pyx_t_4;
  long __pyx_t_5;
  long __pyx_t_6;

  /* "orthogonal_eval.pxd":200
 *     cdef double k
 * 
 *     if npy_isnan(alpha) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_alpha) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_x) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":201
 * 
 *     if npy_isnan(alpha) or npy_isnan(x):
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     if n < 0:
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":200
 *     cdef double k
 * 
 *     if npy_isnan(alpha) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  }

  /* "orthogonal_eval.pxd":203
 *         return nan
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         return 0.0
 *     elif n == 0:
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":204
 * 
 *     if n < 0:
 *         return 0.0             # <<<<<<<<<<<<<<
 *     elif n == 0:
 *         return 1.0
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":203
 *         return nan
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         return 0.0
 *     elif n == 0:
 */
  }

  /* "orthogonal_eval.pxd":205
 *     if n < 0:
 *         return 0.0
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":206
 *         return 0.0
 *     elif n == 0:
 *         return 1.0             # <<<<<<<<<<<<<<
 *     elif n == 1:
 *         return 2*alpha*x
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":205
 *     if n < 0:
 *         return 0.0
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  }

  /* "orthogonal_eval.pxd":207
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return 2*alpha*x
 *     elif alpha == 0.0:
 */
  __pyx_t_1 = ((__pyx_v_n == 1) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":208
 *         return 1.0
 *     elif n == 1:
 *         return 2*alpha*x             # <<<<<<<<<<<<<<
 *     elif alpha == 0.0:
 *         return eval_gegenbauer(n, alpha, x)
 */
    __pyx_r = ((2.0 * __pyx_v_alpha) * __pyx_v_x);
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":207
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return 2*alpha*x
 *     elif alpha == 0.0:
 */
  }

  /* "orthogonal_eval.pxd":209
 *     elif n == 1:
 *         return 2*alpha*x
 *     elif alpha == 0.0:             # <<<<<<<<<<<<<<
 *         return eval_gegenbauer(n, alpha, x)
 *     elif fabs(x) < 1e-5:
 */
  __pyx_t_1 = ((__pyx_v_alpha == 0.0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":210
 *         return 2*alpha*x
 *     elif alpha == 0.0:
 *         return eval_gegenbauer(n, alpha, x)             # <<<<<<<<<<<<<<
 *     elif fabs(x) < 1e-5:
 *         # Power series rather than recurrence due to loss of precision
 */
    __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer(__pyx_v_n, __pyx_v_alpha, __pyx_v_x);
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":209
 *     elif n == 1:
 *         return 2*alpha*x
 *     elif alpha == 0.0:             # <<<<<<<<<<<<<<
 *         return eval_gegenbauer(n, alpha, x)
 *     elif fabs(x) < 1e-5:
 */
  }

  /* "orthogonal_eval.pxd":211
 *     elif alpha == 0.0:
 *         return eval_gegenbauer(n, alpha, x)
 *     elif fabs(x) < 1e-5:             # <<<<<<<<<<<<<<
 *         # Power series rather than recurrence due to loss of precision
 *         # http://functions.wolfram.com/Polynomials/GegenbauerC3/02/
 */
  __pyx_t_1 = ((fabs(__pyx_v_x) < 1e-5) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":214
 *         # Power series rather than recurrence due to loss of precision
 *         # http://functions.wolfram.com/Polynomials/GegenbauerC3/02/
 *         a = n//2             # <<<<<<<<<<<<<<
 * 
 *         d = 1 if a % 2 == 0 else -1
 */
    __pyx_v_a = __Pyx_div_long(__pyx_v_n, 2);

    /* "orthogonal_eval.pxd":216
 *         a = n//2
 * 
 *         d = 1 if a % 2 == 0 else -1             # <<<<<<<<<<<<<<
 *         d /= beta(alpha, 1 + a)
 *         if n == 2*a:
 */
    if ((((__pyx_v_a % 2) == 0) != 0)) {
      __pyx_t_3 = 1.0;
    } else {
      __pyx_t_3 = -1.0;
    }
    __pyx_v_d = __pyx_t_3;

    /* "orthogonal_eval.pxd":217
 * 
 *         d = 1 if a % 2 == 0 else -1
 *         d /= beta(alpha, 1 + a)             # <<<<<<<<<<<<<<
 *         if n == 2*a:
 *             d /= (a + alpha)
 */
    __pyx_v_d = (__pyx_v_d / beta(__pyx_v_alpha, (1 + __pyx_v_a)));

    /* "orthogonal_eval.pxd":218
 *         d = 1 if a % 2 == 0 else -1
 *         d /= beta(alpha, 1 + a)
 *         if n == 2*a:             # <<<<<<<<<<<<<<
 *             d /= (a + alpha)
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_n == (2 * __pyx_v_a)) != 0);
    if (__pyx_t_1) {

      /* "orthogonal_eval.pxd":219
 *         d /= beta(alpha, 1 + a)
 *         if n == 2*a:
 *             d /= (a + alpha)             # <<<<<<<<<<<<<<
 *         else:
 *             d *= 2*x
 */
      __pyx_v_d = (__pyx_v_d / (__pyx_v_a + __pyx_v_alpha));

      /* "orthogonal_eval.pxd":218
 *         d = 1 if a % 2 == 0 else -1
 *         d /= beta(alpha, 1 + a)
 *         if n == 2*a:             # <<<<<<<<<<<<<<
 *             d /= (a + alpha)
 *         else:
 */
      goto __pyx_L7;
    }

    /* "orthogonal_eval.pxd":221
 *             d /= (a + alpha)
 *         else:
 *             d *= 2*x             # <<<<<<<<<<<<<<
 * 
 *         p = 0
 */
    /*else*/ {
      __pyx_v_d = (__pyx_v_d * (2.0 * __pyx_v_x));
    }
    __pyx_L7:;

    /* "orthogonal_eval.pxd":223
 *             d *= 2*x
 * 
 *         p = 0             # <<<<<<<<<<<<<<
 *         for kk in range(a+1):
 *             p += d
 */
    __pyx_v_p = 0.0;

    /* "orthogonal_eval.pxd":224
 * 
 *         p = 0
 *         for kk in range(a+1):             # <<<<<<<<<<<<<<
 *             p += d
 *             d *= -4*x**2 * (a - kk) * (-a + alpha + kk + n) / (
 */
    __pyx_t_4 = (__pyx_v_a + 1);
    __pyx_t_5 = __pyx_t_4;
    for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
      __pyx_v_kk = __pyx_t_6;

      /* "orthogonal_eval.pxd":225
 *         p = 0
 *         for kk in range(a+1):
 *             p += d             # <<<<<<<<<<<<<<
 *             d *= -4*x**2 * (a - kk) * (-a + alpha + kk + n) / (
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 */
      __pyx_v_p = (__pyx_v_p + __pyx_v_d);

      /* "orthogonal_eval.pxd":226
 *         for kk in range(a+1):
 *             p += d
 *             d *= -4*x**2 * (a - kk) * (-a + alpha + kk + n) / (             # <<<<<<<<<<<<<<
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 *             if fabs(d) == 1e-20*fabs(p):
 */
      __pyx_v_d = (__pyx_v_d * ((((-4.0 * pow(__pyx_v_x, 2.0)) * (__pyx_v_a - __pyx_v_kk)) * ((((-__pyx_v_a) + __pyx_v_alpha) + __pyx_v_kk) + __pyx_v_n)) / ((double)((((__pyx_v_n + 1) - (2 * __pyx_v_a)) + (2 * __pyx_v_kk)) * (((__pyx_v_n + 2) - (2 * __pyx_v_a)) + (2 * __pyx_v_kk))))));

      /* "orthogonal_eval.pxd":228
 *             d *= -4*x**2 * (a - kk) * (-a + alpha + kk + n) / (
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 *             if fabs(d) == 1e-20*fabs(p):             # <<<<<<<<<<<<<<
 *                 # converged
 *                 break
 */
      __pyx_t_1 = ((fabs(__pyx_v_d) == (1e-20 * fabs(__pyx_v_p))) != 0);
      if (__pyx_t_1) {

        /* "orthogonal_eval.pxd":230
 *             if fabs(d) == 1e-20*fabs(p):
 *                 # converged
 *                 break             # <<<<<<<<<<<<<<
 *         return p
 *     else:
 */
        goto __pyx_L9_break;

        /* "orthogonal_eval.pxd":228
 *             d *= -4*x**2 * (a - kk) * (-a + alpha + kk + n) / (
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 *             if fabs(d) == 1e-20*fabs(p):             # <<<<<<<<<<<<<<
 *                 # converged
 *                 break
 */
      }
    }
    __pyx_L9_break:;

    /* "orthogonal_eval.pxd":231
 *                 # converged
 *                 break
 *         return p             # <<<<<<<<<<<<<<
 *     else:
 *         d = x - 1
 */
    __pyx_r = __pyx_v_p;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":211
 *     elif alpha == 0.0:
 *         return eval_gegenbauer(n, alpha, x)
 *     elif fabs(x) < 1e-5:             # <<<<<<<<<<<<<<
 *         # Power series rather than recurrence due to loss of precision
 *         # http://functions.wolfram.com/Polynomials/GegenbauerC3/02/
 */
  }

  /* "orthogonal_eval.pxd":233
 *         return p
 *     else:
 *         d = x - 1             # <<<<<<<<<<<<<<
 *         p = x
 *         for kk in range(n-1):
 */
  /*else*/ {
    __pyx_v_d = (__pyx_v_x - 1.0);

    /* "orthogonal_eval.pxd":234
 *     else:
 *         d = x - 1
 *         p = x             # <<<<<<<<<<<<<<
 *         for kk in range(n-1):
 *             k = kk+1.0
 */
    __pyx_v_p = __pyx_v_x;

    /* "orthogonal_eval.pxd":235
 *         d = x - 1
 *         p = x
 *         for kk in range(n-1):             # <<<<<<<<<<<<<<
 *             k = kk+1.0
 *             d = (2*(k+alpha)/(k+2*alpha))*(x-1)*p + (k/(k+2*alpha)) * d
 */
    __pyx_t_4 = (__pyx_v_n - 1);
    __pyx_t_5 = __pyx_t_4;
    for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
      __pyx_v_kk = __pyx_t_6;

      /* "orthogonal_eval.pxd":236
 *         p = x
 *         for kk in range(n-1):
 *             k = kk+1.0             # <<<<<<<<<<<<<<
 *             d = (2*(k+alpha)/(k+2*alpha))*(x-1)*p + (k/(k+2*alpha)) * d
 *             p = d + p
 */
      __pyx_v_k = (__pyx_v_kk + 1.0);

      /* "orthogonal_eval.pxd":237
 *         for kk in range(n-1):
 *             k = kk+1.0
 *             d = (2*(k+alpha)/(k+2*alpha))*(x-1)*p + (k/(k+2*alpha)) * d             # <<<<<<<<<<<<<<
 *             p = d + p
 * 
 */
      __pyx_v_d = (((((2.0 * (__pyx_v_k + __pyx_v_alpha)) / (__pyx_v_k + (2.0 * __pyx_v_alpha))) * (__pyx_v_x - 1.0)) * __pyx_v_p) + ((__pyx_v_k / (__pyx_v_k + (2.0 * __pyx_v_alpha))) * __pyx_v_d));

      /* "orthogonal_eval.pxd":238
 *             k = kk+1.0
 *             d = (2*(k+alpha)/(k+2*alpha))*(x-1)*p + (k/(k+2*alpha)) * d
 *             p = d + p             # <<<<<<<<<<<<<<
 * 
 *         if fabs(alpha/n) < 1e-8:
 */
      __pyx_v_p = (__pyx_v_d + __pyx_v_p);
    }

    /* "orthogonal_eval.pxd":240
 *             p = d + p
 * 
 *         if fabs(alpha/n) < 1e-8:             # <<<<<<<<<<<<<<
 *             # avoid loss of precision
 *             return 2*alpha/n * p
 */
    __pyx_t_1 = ((fabs((__pyx_v_alpha / ((double)__pyx_v_n))) < 1e-8) != 0);
    if (__pyx_t_1) {

      /* "orthogonal_eval.pxd":242
 *         if fabs(alpha/n) < 1e-8:
 *             # avoid loss of precision
 *             return 2*alpha/n * p             # <<<<<<<<<<<<<<
 *         else:
 *             return binom(n+2*alpha-1, n)*p
 */
      __pyx_r = (((2.0 * __pyx_v_alpha) / ((double)__pyx_v_n)) * __pyx_v_p);
      goto __pyx_L0;

      /* "orthogonal_eval.pxd":240
 *             p = d + p
 * 
 *         if fabs(alpha/n) < 1e-8:             # <<<<<<<<<<<<<<
 *             # avoid loss of precision
 *             return 2*alpha/n * p
 */
    }

    /* "orthogonal_eval.pxd":244
 *             return 2*alpha/n * p
 *         else:
 *             return binom(n+2*alpha-1, n)*p             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
    /*else*/ {
      __pyx_r = (__pyx_f_5scipy_7special_15orthogonal_eval_binom(((__pyx_v_n + (2.0 * __pyx_v_alpha)) - 1.0), __pyx_v_n) * __pyx_v_p);
      goto __pyx_L0;
    }
  }

  /* "orthogonal_eval.pxd":194
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_gegenbauer_l(long n, double alpha, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk
 *     cdef long a, b
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":250
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyt(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  CYTHON_UNUSED double __pyx_v_d;
  double __pyx_v_g;
  double __pyx_r;

  /* "orthogonal_eval.pxd":254
 *     cdef number_t g
 * 
 *     d = 1.0             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n
 */
  __pyx_v_d = 1.0;

  /* "orthogonal_eval.pxd":255
 * 
 *     d = 1.0
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n
 *     c = 0.5
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":256
 *     d = 1.0
 *     a = -n
 *     b = n             # <<<<<<<<<<<<<<
 *     c = 0.5
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = __pyx_v_n;

  /* "orthogonal_eval.pxd":257
 *     a = -n
 *     b = n
 *     c = 0.5             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return hyp2f1(a, b, c, g)
 */
  __pyx_v_c = 0.5;

  /* "orthogonal_eval.pxd":258
 *     b = n
 *     c = 0.5
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = (0.5 * (1.0 - __pyx_v_x));

  /* "orthogonal_eval.pxd":259
 *     c = 0.5
 *     g = 0.5*(1-x)
 *     return hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebyt_l(long k, double x) nogil:
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":250
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyt(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  CYTHON_UNUSED double __pyx_v_d;
  __pyx_t_double_complex __pyx_v_g;
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":254
 *     cdef number_t g
 * 
 *     d = 1.0             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n
 */
  __pyx_v_d = 1.0;

  /* "orthogonal_eval.pxd":255
 * 
 *     d = 1.0
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n
 *     c = 0.5
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":256
 *     d = 1.0
 *     a = -n
 *     b = n             # <<<<<<<<<<<<<<
 *     c = 0.5
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = __pyx_v_n;

  /* "orthogonal_eval.pxd":257
 *     a = -n
 *     b = n
 *     c = 0.5             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return hyp2f1(a, b, c, g)
 */
  __pyx_v_c = 0.5;

  /* "orthogonal_eval.pxd":258
 *     b = n
 *     c = 0.5
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_x));

  /* "orthogonal_eval.pxd":259
 *     c = 0.5
 *     g = 0.5*(1-x)
 *     return hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebyt_l(long k, double x) nogil:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":250
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyt(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":261
 *     return hyp2f1(a, b, c, g)
 * 
 * cdef inline double eval_chebyt_l(long k, double x) nogil:             # <<<<<<<<<<<<<<
 *     # Use Chebyshev T recurrence directly, see [MH]
 *     cdef long m
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt_l(long __pyx_v_k, double __pyx_v_x) {
  CYTHON_UNUSED long __pyx_v_m;
  double __pyx_v_b2;
  double __pyx_v_b1;
  double __pyx_v_b0;
  double __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;

  /* "orthogonal_eval.pxd":266
 *     cdef double b2, b1, b0
 * 
 *     if k < 0:             # <<<<<<<<<<<<<<
 *         # symmetry
 *         k = -k
 */
  __pyx_t_1 = ((__pyx_v_k < 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":268
 *     if k < 0:
 *         # symmetry
 *         k = -k             # <<<<<<<<<<<<<<
 * 
 *     b2 = 0
 */
    __pyx_v_k = (-__pyx_v_k);

    /* "orthogonal_eval.pxd":266
 *     cdef double b2, b1, b0
 * 
 *     if k < 0:             # <<<<<<<<<<<<<<
 *         # symmetry
 *         k = -k
 */
  }

  /* "orthogonal_eval.pxd":270
 *         k = -k
 * 
 *     b2 = 0             # <<<<<<<<<<<<<<
 *     b1 = -1
 *     b0 = 0
 */
  __pyx_v_b2 = 0.0;

  /* "orthogonal_eval.pxd":271
 * 
 *     b2 = 0
 *     b1 = -1             # <<<<<<<<<<<<<<
 *     b0 = 0
 *     x = 2*x
 */
  __pyx_v_b1 = -1.0;

  /* "orthogonal_eval.pxd":272
 *     b2 = 0
 *     b1 = -1
 *     b0 = 0             # <<<<<<<<<<<<<<
 *     x = 2*x
 *     for m in range(k+1):
 */
  __pyx_v_b0 = 0.0;

  /* "orthogonal_eval.pxd":273
 *     b1 = -1
 *     b0 = 0
 *     x = 2*x             # <<<<<<<<<<<<<<
 *     for m in range(k+1):
 *         b2 = b1
 */
  __pyx_v_x = (2.0 * __pyx_v_x);

  /* "orthogonal_eval.pxd":274
 *     b0 = 0
 *     x = 2*x
 *     for m in range(k+1):             # <<<<<<<<<<<<<<
 *         b2 = b1
 *         b1 = b0
 */
  __pyx_t_2 = (__pyx_v_k + 1);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_m = __pyx_t_4;

    /* "orthogonal_eval.pxd":275
 *     x = 2*x
 *     for m in range(k+1):
 *         b2 = b1             # <<<<<<<<<<<<<<
 *         b1 = b0
 *         b0 = x*b1 - b2
 */
    __pyx_v_b2 = __pyx_v_b1;

    /* "orthogonal_eval.pxd":276
 *     for m in range(k+1):
 *         b2 = b1
 *         b1 = b0             # <<<<<<<<<<<<<<
 *         b0 = x*b1 - b2
 *     return (b0 - b2)/2.0
 */
    __pyx_v_b1 = __pyx_v_b0;

    /* "orthogonal_eval.pxd":277
 *         b2 = b1
 *         b1 = b0
 *         b0 = x*b1 - b2             # <<<<<<<<<<<<<<
 *     return (b0 - b2)/2.0
 * 
 */
    __pyx_v_b0 = ((__pyx_v_x * __pyx_v_b1) - __pyx_v_b2);
  }

  /* "orthogonal_eval.pxd":278
 *         b1 = b0
 *         b0 = x*b1 - b2
 *     return (b0 - b2)/2.0             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = ((__pyx_v_b0 - __pyx_v_b2) / 2.0);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":261
 *     return hyp2f1(a, b, c, g)
 * 
 * cdef inline double eval_chebyt_l(long k, double x) nogil:             # <<<<<<<<<<<<<<
 *     # Use Chebyshev T recurrence directly, see [MH]
 *     cdef long m
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":284
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyu(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  double __pyx_v_g;
  double __pyx_r;

  /* "orthogonal_eval.pxd":288
 *     cdef number_t g
 * 
 *     d = n+1             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n+2
 */
  __pyx_v_d = (__pyx_v_n + 1.0);

  /* "orthogonal_eval.pxd":289
 * 
 *     d = n+1
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n+2
 *     c = 1.5
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":290
 *     d = n+1
 *     a = -n
 *     b = n+2             # <<<<<<<<<<<<<<
 *     c = 1.5
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = (__pyx_v_n + 2.0);

  /* "orthogonal_eval.pxd":291
 *     a = -n
 *     b = n+2
 *     c = 1.5             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)
 */
  __pyx_v_c = 1.5;

  /* "orthogonal_eval.pxd":292
 *     b = n+2
 *     c = 1.5
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return d*hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = (0.5 * (1.0 - __pyx_v_x));

  /* "orthogonal_eval.pxd":293
 *     c = 1.5
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebyu_l(long k, double x) nogil:
 */
  __pyx_r = (__pyx_v_d * __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":284
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyu(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  __pyx_t_double_complex __pyx_v_g;
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":288
 *     cdef number_t g
 * 
 *     d = n+1             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n+2
 */
  __pyx_v_d = (__pyx_v_n + 1.0);

  /* "orthogonal_eval.pxd":289
 * 
 *     d = n+1
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n+2
 *     c = 1.5
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":290
 *     d = n+1
 *     a = -n
 *     b = n+2             # <<<<<<<<<<<<<<
 *     c = 1.5
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = (__pyx_v_n + 2.0);

  /* "orthogonal_eval.pxd":291
 *     a = -n
 *     b = n+2
 *     c = 1.5             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)
 */
  __pyx_v_c = 1.5;

  /* "orthogonal_eval.pxd":292
 *     b = n+2
 *     c = 1.5
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return d*hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_x));

  /* "orthogonal_eval.pxd":293
 *     c = 1.5
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebyu_l(long k, double x) nogil:
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_d, 0), __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":284
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyu(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":295
 *     return d*hyp2f1(a, b, c, g)
 * 
 * cdef inline double eval_chebyu_l(long k, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long m
 *     cdef int sign
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu_l(long __pyx_v_k, double __pyx_v_x) {
  CYTHON_UNUSED long __pyx_v_m;
  int __pyx_v_sign;
  double __pyx_v_b2;
  double __pyx_v_b1;
  double __pyx_v_b0;
  double __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;

  /* "orthogonal_eval.pxd":300
 *     cdef double b2, b1, b0
 * 
 *     if k == -1:             # <<<<<<<<<<<<<<
 *         return 0
 *     elif k < -1:
 */
  __pyx_t_1 = ((__pyx_v_k == -1L) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":301
 * 
 *     if k == -1:
 *         return 0             # <<<<<<<<<<<<<<
 *     elif k < -1:
 *         # symmetry
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":300
 *     cdef double b2, b1, b0
 * 
 *     if k == -1:             # <<<<<<<<<<<<<<
 *         return 0
 *     elif k < -1:
 */
  }

  /* "orthogonal_eval.pxd":302
 *     if k == -1:
 *         return 0
 *     elif k < -1:             # <<<<<<<<<<<<<<
 *         # symmetry
 *         k = -k - 2
 */
  __pyx_t_1 = ((__pyx_v_k < -1L) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":304
 *     elif k < -1:
 *         # symmetry
 *         k = -k - 2             # <<<<<<<<<<<<<<
 *         sign = -1
 *     else:
 */
    __pyx_v_k = ((-__pyx_v_k) - 2);

    /* "orthogonal_eval.pxd":305
 *         # symmetry
 *         k = -k - 2
 *         sign = -1             # <<<<<<<<<<<<<<
 *     else:
 *         sign = 1
 */
    __pyx_v_sign = -1;

    /* "orthogonal_eval.pxd":302
 *     if k == -1:
 *         return 0
 *     elif k < -1:             # <<<<<<<<<<<<<<
 *         # symmetry
 *         k = -k - 2
 */
    goto __pyx_L3;
  }

  /* "orthogonal_eval.pxd":307
 *         sign = -1
 *     else:
 *         sign = 1             # <<<<<<<<<<<<<<
 * 
 *     b2 = 0
 */
  /*else*/ {
    __pyx_v_sign = 1;
  }
  __pyx_L3:;

  /* "orthogonal_eval.pxd":309
 *         sign = 1
 * 
 *     b2 = 0             # <<<<<<<<<<<<<<
 *     b1 = -1
 *     b0 = 0
 */
  __pyx_v_b2 = 0.0;

  /* "orthogonal_eval.pxd":310
 * 
 *     b2 = 0
 *     b1 = -1             # <<<<<<<<<<<<<<
 *     b0 = 0
 *     x = 2*x
 */
  __pyx_v_b1 = -1.0;

  /* "orthogonal_eval.pxd":311
 *     b2 = 0
 *     b1 = -1
 *     b0 = 0             # <<<<<<<<<<<<<<
 *     x = 2*x
 *     for m in range(k+1):
 */
  __pyx_v_b0 = 0.0;

  /* "orthogonal_eval.pxd":312
 *     b1 = -1
 *     b0 = 0
 *     x = 2*x             # <<<<<<<<<<<<<<
 *     for m in range(k+1):
 *         b2 = b1
 */
  __pyx_v_x = (2.0 * __pyx_v_x);

  /* "orthogonal_eval.pxd":313
 *     b0 = 0
 *     x = 2*x
 *     for m in range(k+1):             # <<<<<<<<<<<<<<
 *         b2 = b1
 *         b1 = b0
 */
  __pyx_t_2 = (__pyx_v_k + 1);
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_m = __pyx_t_4;

    /* "orthogonal_eval.pxd":314
 *     x = 2*x
 *     for m in range(k+1):
 *         b2 = b1             # <<<<<<<<<<<<<<
 *         b1 = b0
 *         b0 = x*b1 - b2
 */
    __pyx_v_b2 = __pyx_v_b1;

    /* "orthogonal_eval.pxd":315
 *     for m in range(k+1):
 *         b2 = b1
 *         b1 = b0             # <<<<<<<<<<<<<<
 *         b0 = x*b1 - b2
 *     return b0 * sign
 */
    __pyx_v_b1 = __pyx_v_b0;

    /* "orthogonal_eval.pxd":316
 *         b2 = b1
 *         b1 = b0
 *         b0 = x*b1 - b2             # <<<<<<<<<<<<<<
 *     return b0 * sign
 * 
 */
    __pyx_v_b0 = ((__pyx_v_x * __pyx_v_b1) - __pyx_v_b2);
  }

  /* "orthogonal_eval.pxd":317
 *         b1 = b0
 *         b0 = x*b1 - b2
 *     return b0 * sign             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = (__pyx_v_b0 * __pyx_v_sign);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":295
 *     return d*hyp2f1(a, b, c, g)
 * 
 * cdef inline double eval_chebyu_l(long k, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long m
 *     cdef int sign
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":323
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebys(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu(n, 0.5*x)
 * 
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":324
 * 
 * cdef inline number_t eval_chebys(double n, number_t x) nogil:
 *     return eval_chebyu(n, 0.5*x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebys_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(__pyx_v_n, (0.5 * __pyx_v_x));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":323
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebys(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu(n, 0.5*x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":324
 * 
 * cdef inline number_t eval_chebys(double n, number_t x) nogil:
 *     return eval_chebyu(n, 0.5*x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebys_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(__pyx_v_n, __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __pyx_v_x));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":323
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebys(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu(n, 0.5*x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":326
 *     return eval_chebyu(n, 0.5*x)
 * 
 * cdef inline double eval_chebys_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu_l(n, 0.5*x)
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys_l(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":327
 * 
 * cdef inline double eval_chebys_l(long n, double x) nogil:
 *     return eval_chebyu_l(n, 0.5*x)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu_l(__pyx_v_n, (0.5 * __pyx_v_x));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":326
 *     return eval_chebyu(n, 0.5*x)
 * 
 * cdef inline double eval_chebys_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu_l(n, 0.5*x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":333
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyc(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return 2*eval_chebyt(n, 0.5*x)
 * 
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":334
 * 
 * cdef inline number_t eval_chebyc(double n, number_t x) nogil:
 *     return 2*eval_chebyt(n, 0.5*x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebyc_l(long n, double x) nogil:
 */
  __pyx_r = (2.0 * __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(__pyx_v_n, (0.5 * __pyx_v_x)));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":333
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyc(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return 2*eval_chebyt(n, 0.5*x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":334
 * 
 * cdef inline number_t eval_chebyc(double n, number_t x) nogil:
 *     return 2*eval_chebyt(n, 0.5*x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_chebyc_l(long n, double x) nogil:
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2, 0), __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(__pyx_v_n, __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __pyx_v_x)));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":333
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_chebyc(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return 2*eval_chebyt(n, 0.5*x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":336
 *     return 2*eval_chebyt(n, 0.5*x)
 * 
 * cdef inline double eval_chebyc_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return 2*eval_chebyt_l(n, 0.5*x)
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc_l(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":337
 * 
 * cdef inline double eval_chebyc_l(long n, double x) nogil:
 *     return 2*eval_chebyt_l(n, 0.5*x)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = (2.0 * __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt_l(__pyx_v_n, (0.5 * __pyx_v_x)));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":336
 *     return 2*eval_chebyt(n, 0.5*x)
 * 
 * cdef inline double eval_chebyc_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return 2*eval_chebyt_l(n, 0.5*x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":343
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_chebyt(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyt(n, 2*x-1)
 * 
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":344
 * 
 * cdef inline number_t eval_sh_chebyt(double n, number_t x) nogil:
 *     return eval_chebyt(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_sh_chebyt_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(__pyx_v_n, ((2.0 * __pyx_v_x) - 1.0));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":343
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_chebyt(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyt(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":344
 * 
 * cdef inline number_t eval_sh_chebyt(double n, number_t x) nogil:
 *     return eval_chebyt(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_sh_chebyt_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt(__pyx_v_n, __Pyx_c_diff_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2, 0), __pyx_v_x), __pyx_t_double_complex_from_parts(1, 0)));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":343
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_chebyt(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyt(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":346
 *     return eval_chebyt(n, 2*x-1)
 * 
 * cdef inline double eval_sh_chebyt_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyt_l(n, 2*x-1)
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt_l(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":347
 * 
 * cdef inline double eval_sh_chebyt_l(long n, double x) nogil:
 *     return eval_chebyt_l(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt_l(__pyx_v_n, ((2.0 * __pyx_v_x) - 1.0));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":346
 *     return eval_chebyt(n, 2*x-1)
 * 
 * cdef inline double eval_sh_chebyt_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyt_l(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":353
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_chebyu(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu(n, 2*x-1)
 * 
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":354
 * 
 * cdef inline number_t eval_sh_chebyu(double n, number_t x) nogil:
 *     return eval_chebyu(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_sh_chebyu_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(__pyx_v_n, ((2.0 * __pyx_v_x) - 1.0));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":353
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_chebyu(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":354
 * 
 * cdef inline number_t eval_sh_chebyu(double n, number_t x) nogil:
 *     return eval_chebyu(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_sh_chebyu_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu(__pyx_v_n, __Pyx_c_diff_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2, 0), __pyx_v_x), __pyx_t_double_complex_from_parts(1, 0)));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":353
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_chebyu(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":356
 *     return eval_chebyu(n, 2*x-1)
 * 
 * cdef inline double eval_sh_chebyu_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu_l(n, 2*x-1)
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu_l(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":357
 * 
 * cdef inline double eval_sh_chebyu_l(long n, double x) nogil:
 *     return eval_chebyu_l(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu_l(__pyx_v_n, ((2.0 * __pyx_v_x) - 1.0));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":356
 *     return eval_chebyu(n, 2*x-1)
 * 
 * cdef inline double eval_sh_chebyu_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_chebyu_l(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":363
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_legendre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  double __pyx_v_g;
  double __pyx_r;

  /* "orthogonal_eval.pxd":367
 *     cdef number_t g
 * 
 *     d = 1             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n+1
 */
  __pyx_v_d = 1.0;

  /* "orthogonal_eval.pxd":368
 * 
 *     d = 1
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n+1
 *     c = 1
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":369
 *     d = 1
 *     a = -n
 *     b = n+1             # <<<<<<<<<<<<<<
 *     c = 1
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = (__pyx_v_n + 1.0);

  /* "orthogonal_eval.pxd":370
 *     a = -n
 *     b = n+1
 *     c = 1             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)
 */
  __pyx_v_c = 1.0;

  /* "orthogonal_eval.pxd":371
 *     b = n+1
 *     c = 1
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return d*hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = (0.5 * (1.0 - __pyx_v_x));

  /* "orthogonal_eval.pxd":372
 *     c = 1
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = (__pyx_v_d * __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":363
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_legendre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_d;
  __pyx_t_double_complex __pyx_v_g;
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":367
 *     cdef number_t g
 * 
 *     d = 1             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = n+1
 */
  __pyx_v_d = 1.0;

  /* "orthogonal_eval.pxd":368
 * 
 *     d = 1
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = n+1
 *     c = 1
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":369
 *     d = 1
 *     a = -n
 *     b = n+1             # <<<<<<<<<<<<<<
 *     c = 1
 *     g = 0.5*(1-x)
 */
  __pyx_v_b = (__pyx_v_n + 1.0);

  /* "orthogonal_eval.pxd":370
 *     a = -n
 *     b = n+1
 *     c = 1             # <<<<<<<<<<<<<<
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)
 */
  __pyx_v_c = 1.0;

  /* "orthogonal_eval.pxd":371
 *     b = n+1
 *     c = 1
 *     g = 0.5*(1-x)             # <<<<<<<<<<<<<<
 *     return d*hyp2f1(a, b, c, g)
 * 
 */
  __pyx_v_g = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_x));

  /* "orthogonal_eval.pxd":372
 *     c = 1
 *     g = 0.5*(1-x)
 *     return d*hyp2f1(a, b, c, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_d, 0), __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp2f1(__pyx_v_a, __pyx_v_b, __pyx_v_c, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":363
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_legendre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, c, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":375
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_legendre_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk, a
 *     cdef double p, d
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre_l(long __pyx_v_n, double __pyx_v_x) {
  long __pyx_v_kk;
  long __pyx_v_a;
  double __pyx_v_p;
  double __pyx_v_d;
  double __pyx_v_k;
  double __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;
  long __pyx_t_5;

  /* "orthogonal_eval.pxd":380
 *     cdef double k
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         # symmetry
 *         n = -n - 1
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":382
 *     if n < 0:
 *         # symmetry
 *         n = -n - 1             # <<<<<<<<<<<<<<
 * 
 *     if n == 0:
 */
    __pyx_v_n = ((-__pyx_v_n) - 1);

    /* "orthogonal_eval.pxd":380
 *     cdef double k
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         # symmetry
 *         n = -n - 1
 */
  }

  /* "orthogonal_eval.pxd":384
 *         n = -n - 1
 * 
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":385
 * 
 *     if n == 0:
 *         return 1.0             # <<<<<<<<<<<<<<
 *     elif n == 1:
 *         return x
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":384
 *         n = -n - 1
 * 
 *     if n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  }

  /* "orthogonal_eval.pxd":386
 *     if n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return x
 *     elif fabs(x) < 1e-5:
 */
  __pyx_t_1 = ((__pyx_v_n == 1) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":387
 *         return 1.0
 *     elif n == 1:
 *         return x             # <<<<<<<<<<<<<<
 *     elif fabs(x) < 1e-5:
 *         # Power series rather than recurrence due to loss of precision
 */
    __pyx_r = __pyx_v_x;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":386
 *     if n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return x
 *     elif fabs(x) < 1e-5:
 */
  }

  /* "orthogonal_eval.pxd":388
 *     elif n == 1:
 *         return x
 *     elif fabs(x) < 1e-5:             # <<<<<<<<<<<<<<
 *         # Power series rather than recurrence due to loss of precision
 *         # http://functions.wolfram.com/Polynomials/LegendreP/02/
 */
  __pyx_t_1 = ((fabs(__pyx_v_x) < 1e-5) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":391
 *         # Power series rather than recurrence due to loss of precision
 *         # http://functions.wolfram.com/Polynomials/LegendreP/02/
 *         a = n//2             # <<<<<<<<<<<<<<
 * 
 *         d = 1 if a % 2 == 0 else -1
 */
    __pyx_v_a = __Pyx_div_long(__pyx_v_n, 2);

    /* "orthogonal_eval.pxd":393
 *         a = n//2
 * 
 *         d = 1 if a % 2 == 0 else -1             # <<<<<<<<<<<<<<
 *         if n == 2*a:
 *             d *= -2 / beta(a + 1, -0.5)
 */
    if ((((__pyx_v_a % 2) == 0) != 0)) {
      __pyx_t_2 = 1.0;
    } else {
      __pyx_t_2 = -1.0;
    }
    __pyx_v_d = __pyx_t_2;

    /* "orthogonal_eval.pxd":394
 * 
 *         d = 1 if a % 2 == 0 else -1
 *         if n == 2*a:             # <<<<<<<<<<<<<<
 *             d *= -2 / beta(a + 1, -0.5)
 *         else:
 */
    __pyx_t_1 = ((__pyx_v_n == (2 * __pyx_v_a)) != 0);
    if (__pyx_t_1) {

      /* "orthogonal_eval.pxd":395
 *         d = 1 if a % 2 == 0 else -1
 *         if n == 2*a:
 *             d *= -2 / beta(a + 1, -0.5)             # <<<<<<<<<<<<<<
 *         else:
 *             d *= 2 * x / beta(a + 1, 0.5)
 */
      __pyx_v_d = (__pyx_v_d * (-2.0 / beta((__pyx_v_a + 1), -0.5)));

      /* "orthogonal_eval.pxd":394
 * 
 *         d = 1 if a % 2 == 0 else -1
 *         if n == 2*a:             # <<<<<<<<<<<<<<
 *             d *= -2 / beta(a + 1, -0.5)
 *         else:
 */
      goto __pyx_L5;
    }

    /* "orthogonal_eval.pxd":397
 *             d *= -2 / beta(a + 1, -0.5)
 *         else:
 *             d *= 2 * x / beta(a + 1, 0.5)             # <<<<<<<<<<<<<<
 * 
 *         p = 0
 */
    /*else*/ {
      __pyx_v_d = (__pyx_v_d * ((2.0 * __pyx_v_x) / beta((__pyx_v_a + 1), 0.5)));
    }
    __pyx_L5:;

    /* "orthogonal_eval.pxd":399
 *             d *= 2 * x / beta(a + 1, 0.5)
 * 
 *         p = 0             # <<<<<<<<<<<<<<
 *         for kk in range(a+1):
 *             p += d
 */
    __pyx_v_p = 0.0;

    /* "orthogonal_eval.pxd":400
 * 
 *         p = 0
 *         for kk in range(a+1):             # <<<<<<<<<<<<<<
 *             p += d
 *             d *= -2 * x**2 * (a - kk) * (2*n + 1 - 2*a + 2*kk) / (
 */
    __pyx_t_3 = (__pyx_v_a + 1);
    __pyx_t_4 = __pyx_t_3;
    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
      __pyx_v_kk = __pyx_t_5;

      /* "orthogonal_eval.pxd":401
 *         p = 0
 *         for kk in range(a+1):
 *             p += d             # <<<<<<<<<<<<<<
 *             d *= -2 * x**2 * (a - kk) * (2*n + 1 - 2*a + 2*kk) / (
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 */
      __pyx_v_p = (__pyx_v_p + __pyx_v_d);

      /* "orthogonal_eval.pxd":402
 *         for kk in range(a+1):
 *             p += d
 *             d *= -2 * x**2 * (a - kk) * (2*n + 1 - 2*a + 2*kk) / (             # <<<<<<<<<<<<<<
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 *             if fabs(d) == 1e-20*fabs(p):
 */
      __pyx_v_d = (__pyx_v_d * ((((-2.0 * pow(__pyx_v_x, 2.0)) * (__pyx_v_a - __pyx_v_kk)) * ((((2 * __pyx_v_n) + 1) - (2 * __pyx_v_a)) + (2 * __pyx_v_kk))) / ((double)((((__pyx_v_n + 1) - (2 * __pyx_v_a)) + (2 * __pyx_v_kk)) * (((__pyx_v_n + 2) - (2 * __pyx_v_a)) + (2 * __pyx_v_kk))))));

      /* "orthogonal_eval.pxd":404
 *             d *= -2 * x**2 * (a - kk) * (2*n + 1 - 2*a + 2*kk) / (
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 *             if fabs(d) == 1e-20*fabs(p):             # <<<<<<<<<<<<<<
 *                 # converged
 *                 break
 */
      __pyx_t_1 = ((fabs(__pyx_v_d) == (1e-20 * fabs(__pyx_v_p))) != 0);
      if (__pyx_t_1) {

        /* "orthogonal_eval.pxd":406
 *             if fabs(d) == 1e-20*fabs(p):
 *                 # converged
 *                 break             # <<<<<<<<<<<<<<
 *         return p
 *     else:
 */
        goto __pyx_L7_break;

        /* "orthogonal_eval.pxd":404
 *             d *= -2 * x**2 * (a - kk) * (2*n + 1 - 2*a + 2*kk) / (
 *                 (n + 1 - 2*a + 2*kk) * (n + 2 - 2*a + 2*kk))
 *             if fabs(d) == 1e-20*fabs(p):             # <<<<<<<<<<<<<<
 *                 # converged
 *                 break
 */
      }
    }
    __pyx_L7_break:;

    /* "orthogonal_eval.pxd":407
 *                 # converged
 *                 break
 *         return p             # <<<<<<<<<<<<<<
 *     else:
 *         d = x - 1
 */
    __pyx_r = __pyx_v_p;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":388
 *     elif n == 1:
 *         return x
 *     elif fabs(x) < 1e-5:             # <<<<<<<<<<<<<<
 *         # Power series rather than recurrence due to loss of precision
 *         # http://functions.wolfram.com/Polynomials/LegendreP/02/
 */
  }

  /* "orthogonal_eval.pxd":409
 *         return p
 *     else:
 *         d = x - 1             # <<<<<<<<<<<<<<
 *         p = x
 *         for kk in range(n-1):
 */
  /*else*/ {
    __pyx_v_d = (__pyx_v_x - 1.0);

    /* "orthogonal_eval.pxd":410
 *     else:
 *         d = x - 1
 *         p = x             # <<<<<<<<<<<<<<
 *         for kk in range(n-1):
 *             k = kk+1.0
 */
    __pyx_v_p = __pyx_v_x;

    /* "orthogonal_eval.pxd":411
 *         d = x - 1
 *         p = x
 *         for kk in range(n-1):             # <<<<<<<<<<<<<<
 *             k = kk+1.0
 *             d = ((2*k+1)/(k+1))*(x-1)*p + (k/(k+1)) * d
 */
    __pyx_t_3 = (__pyx_v_n - 1);
    __pyx_t_4 = __pyx_t_3;
    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
      __pyx_v_kk = __pyx_t_5;

      /* "orthogonal_eval.pxd":412
 *         p = x
 *         for kk in range(n-1):
 *             k = kk+1.0             # <<<<<<<<<<<<<<
 *             d = ((2*k+1)/(k+1))*(x-1)*p + (k/(k+1)) * d
 *             p = d + p
 */
      __pyx_v_k = (__pyx_v_kk + 1.0);

      /* "orthogonal_eval.pxd":413
 *         for kk in range(n-1):
 *             k = kk+1.0
 *             d = ((2*k+1)/(k+1))*(x-1)*p + (k/(k+1)) * d             # <<<<<<<<<<<<<<
 *             p = d + p
 *         return p
 */
      __pyx_v_d = ((((((2.0 * __pyx_v_k) + 1.0) / (__pyx_v_k + 1.0)) * (__pyx_v_x - 1.0)) * __pyx_v_p) + ((__pyx_v_k / (__pyx_v_k + 1.0)) * __pyx_v_d));

      /* "orthogonal_eval.pxd":414
 *             k = kk+1.0
 *             d = ((2*k+1)/(k+1))*(x-1)*p + (k/(k+1)) * d
 *             p = d + p             # <<<<<<<<<<<<<<
 *         return p
 * 
 */
      __pyx_v_p = (__pyx_v_d + __pyx_v_p);
    }

    /* "orthogonal_eval.pxd":415
 *             d = ((2*k+1)/(k+1))*(x-1)*p + (k/(k+1)) * d
 *             p = d + p
 *         return p             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
    __pyx_r = __pyx_v_p;
    goto __pyx_L0;
  }

  /* "orthogonal_eval.pxd":375
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_legendre_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk, a
 *     cdef double p, d
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":421
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_legendre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_legendre(n, 2*x-1)
 * 
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":422
 * 
 * cdef inline number_t eval_sh_legendre(double n, number_t x) nogil:
 *     return eval_legendre(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_sh_legendre_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(__pyx_v_n, ((2.0 * __pyx_v_x) - 1.0));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":421
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_legendre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_legendre(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":422
 * 
 * cdef inline number_t eval_sh_legendre(double n, number_t x) nogil:
 *     return eval_legendre(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_sh_legendre_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre(__pyx_v_n, __Pyx_c_diff_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2, 0), __pyx_v_x), __pyx_t_double_complex_from_parts(1, 0)));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":421
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_sh_legendre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_legendre(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":424
 *     return eval_legendre(n, 2*x-1)
 * 
 * cdef inline double eval_sh_legendre_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_legendre_l(n, 2*x-1)
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre_l(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":425
 * 
 * cdef inline double eval_sh_legendre_l(long n, double x) nogil:
 *     return eval_legendre_l(n, 2*x-1)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre_l(__pyx_v_n, ((2.0 * __pyx_v_x) - 1.0));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":424
 *     return eval_legendre(n, 2*x-1)
 * 
 * cdef inline double eval_sh_legendre_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_legendre_l(n, 2*x-1)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":431
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_genlaguerre(double n, double alpha, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, d
 *     cdef number_t g
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(double __pyx_v_n, double __pyx_v_alpha, double __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_d;
  double __pyx_v_g;
  double __pyx_r;
  int __pyx_t_1;

  /* "orthogonal_eval.pxd":435
 *     cdef number_t g
 * 
 *     if alpha <= -1:             # <<<<<<<<<<<<<<
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 */
  __pyx_t_1 = ((__pyx_v_alpha <= -1.0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":436
 * 
 *     if alpha <= -1:
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,             # <<<<<<<<<<<<<<
 *                        "polynomial defined only for alpha > -1")
 *         return nan
 */
    sf_error(((char *)"eval_genlaguerre"), SF_ERROR_DOMAIN, ((char *)"polynomial defined only for alpha > -1"));

    /* "orthogonal_eval.pxd":438
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     d = binom(n+alpha, n)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":435
 *     cdef number_t g
 * 
 *     if alpha <= -1:             # <<<<<<<<<<<<<<
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 */
  }

  /* "orthogonal_eval.pxd":440
 *         return nan
 * 
 *     d = binom(n+alpha, n)             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = alpha + 1
 */
  __pyx_v_d = __pyx_f_5scipy_7special_15orthogonal_eval_binom((__pyx_v_n + __pyx_v_alpha), __pyx_v_n);

  /* "orthogonal_eval.pxd":441
 * 
 *     d = binom(n+alpha, n)
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = alpha + 1
 *     g = x
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":442
 *     d = binom(n+alpha, n)
 *     a = -n
 *     b = alpha + 1             # <<<<<<<<<<<<<<
 *     g = x
 *     return d * hyp1f1(a, b, g)
 */
  __pyx_v_b = (__pyx_v_alpha + 1.0);

  /* "orthogonal_eval.pxd":443
 *     a = -n
 *     b = alpha + 1
 *     g = x             # <<<<<<<<<<<<<<
 *     return d * hyp1f1(a, b, g)
 * 
 */
  __pyx_v_g = __pyx_v_x;

  /* "orthogonal_eval.pxd":444
 *     b = alpha + 1
 *     g = x
 *     return d * hyp1f1(a, b, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = (__pyx_v_d * __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_hyp1f1(__pyx_v_a, __pyx_v_b, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":431
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_genlaguerre(double n, double alpha, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(double __pyx_v_n, double __pyx_v_alpha, __pyx_t_double_complex __pyx_v_x) {
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_d;
  __pyx_t_double_complex __pyx_v_g;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "orthogonal_eval.pxd":435
 *     cdef number_t g
 * 
 *     if alpha <= -1:             # <<<<<<<<<<<<<<
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 */
  __pyx_t_1 = ((__pyx_v_alpha <= -1.0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":436
 * 
 *     if alpha <= -1:
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,             # <<<<<<<<<<<<<<
 *                        "polynomial defined only for alpha > -1")
 *         return nan
 */
    sf_error(((char *)"eval_genlaguerre"), SF_ERROR_DOMAIN, ((char *)"polynomial defined only for alpha > -1"));

    /* "orthogonal_eval.pxd":438
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     d = binom(n+alpha, n)
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":435
 *     cdef number_t g
 * 
 *     if alpha <= -1:             # <<<<<<<<<<<<<<
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 */
  }

  /* "orthogonal_eval.pxd":440
 *         return nan
 * 
 *     d = binom(n+alpha, n)             # <<<<<<<<<<<<<<
 *     a = -n
 *     b = alpha + 1
 */
  __pyx_v_d = __pyx_f_5scipy_7special_15orthogonal_eval_binom((__pyx_v_n + __pyx_v_alpha), __pyx_v_n);

  /* "orthogonal_eval.pxd":441
 * 
 *     d = binom(n+alpha, n)
 *     a = -n             # <<<<<<<<<<<<<<
 *     b = alpha + 1
 *     g = x
 */
  __pyx_v_a = (-__pyx_v_n);

  /* "orthogonal_eval.pxd":442
 *     d = binom(n+alpha, n)
 *     a = -n
 *     b = alpha + 1             # <<<<<<<<<<<<<<
 *     g = x
 *     return d * hyp1f1(a, b, g)
 */
  __pyx_v_b = (__pyx_v_alpha + 1.0);

  /* "orthogonal_eval.pxd":443
 *     a = -n
 *     b = alpha + 1
 *     g = x             # <<<<<<<<<<<<<<
 *     return d * hyp1f1(a, b, g)
 * 
 */
  __pyx_v_g = __pyx_v_x;

  /* "orthogonal_eval.pxd":444
 *     b = alpha + 1
 *     g = x
 *     return d * hyp1f1(a, b, g)             # <<<<<<<<<<<<<<
 * 
 * @cython.cdivision(True)
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_d, 0), __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_hyp1f1(__pyx_v_a, __pyx_v_b, __pyx_v_g));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":431
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_genlaguerre(double n, double alpha, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     cdef double a, b, d
 *     cdef number_t g
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":447
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_genlaguerre_l(long n, double alpha, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk
 *     cdef double p, d
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre_l(long __pyx_v_n, double __pyx_v_alpha, double __pyx_v_x) {
  long __pyx_v_kk;
  double __pyx_v_p;
  double __pyx_v_d;
  double __pyx_v_k;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  long __pyx_t_3;
  long __pyx_t_4;
  long __pyx_t_5;

  /* "orthogonal_eval.pxd":452
 *     cdef double k
 * 
 *     if alpha <= -1:             # <<<<<<<<<<<<<<
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 */
  __pyx_t_1 = ((__pyx_v_alpha <= -1.0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":453
 * 
 *     if alpha <= -1:
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,             # <<<<<<<<<<<<<<
 *                        "polynomial defined only for alpha > -1")
 *         return nan
 */
    sf_error(((char *)"eval_genlaguerre"), SF_ERROR_DOMAIN, ((char *)"polynomial defined only for alpha > -1"));

    /* "orthogonal_eval.pxd":455
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     if npy_isnan(alpha) or npy_isnan(x):
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":452
 *     cdef double k
 * 
 *     if alpha <= -1:             # <<<<<<<<<<<<<<
 *         sf_error.error("eval_genlaguerre", sf_error.DOMAIN,
 *                        "polynomial defined only for alpha > -1")
 */
  }

  /* "orthogonal_eval.pxd":457
 *         return nan
 * 
 *     if npy_isnan(alpha) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_alpha) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_x) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":458
 * 
 *     if npy_isnan(alpha) or npy_isnan(x):
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     if n < 0:
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":457
 *         return nan
 * 
 *     if npy_isnan(alpha) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  }

  /* "orthogonal_eval.pxd":460
 *         return nan
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         return 0.0
 *     elif n == 0:
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":461
 * 
 *     if n < 0:
 *         return 0.0             # <<<<<<<<<<<<<<
 *     elif n == 0:
 *         return 1.0
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":460
 *         return nan
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         return 0.0
 *     elif n == 0:
 */
  }

  /* "orthogonal_eval.pxd":462
 *     if n < 0:
 *         return 0.0
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":463
 *         return 0.0
 *     elif n == 0:
 *         return 1.0             # <<<<<<<<<<<<<<
 *     elif n == 1:
 *         return -x+alpha+1
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":462
 *     if n < 0:
 *         return 0.0
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  }

  /* "orthogonal_eval.pxd":464
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return -x+alpha+1
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 1) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":465
 *         return 1.0
 *     elif n == 1:
 *         return -x+alpha+1             # <<<<<<<<<<<<<<
 *     else:
 *         d = -x/(alpha+1)
 */
    __pyx_r = (((-__pyx_v_x) + __pyx_v_alpha) + 1.0);
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":464
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return -x+alpha+1
 *     else:
 */
  }

  /* "orthogonal_eval.pxd":467
 *         return -x+alpha+1
 *     else:
 *         d = -x/(alpha+1)             # <<<<<<<<<<<<<<
 *         p = d + 1
 *         for kk in range(n-1):
 */
  /*else*/ {
    __pyx_v_d = ((-__pyx_v_x) / (__pyx_v_alpha + 1.0));

    /* "orthogonal_eval.pxd":468
 *     else:
 *         d = -x/(alpha+1)
 *         p = d + 1             # <<<<<<<<<<<<<<
 *         for kk in range(n-1):
 *             k = kk+1.0
 */
    __pyx_v_p = (__pyx_v_d + 1.0);

    /* "orthogonal_eval.pxd":469
 *         d = -x/(alpha+1)
 *         p = d + 1
 *         for kk in range(n-1):             # <<<<<<<<<<<<<<
 *             k = kk+1.0
 *             d = -x/(k+alpha+1)*p + (k/(k+alpha+1)) * d
 */
    __pyx_t_3 = (__pyx_v_n - 1);
    __pyx_t_4 = __pyx_t_3;
    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
      __pyx_v_kk = __pyx_t_5;

      /* "orthogonal_eval.pxd":470
 *         p = d + 1
 *         for kk in range(n-1):
 *             k = kk+1.0             # <<<<<<<<<<<<<<
 *             d = -x/(k+alpha+1)*p + (k/(k+alpha+1)) * d
 *             p = d + p
 */
      __pyx_v_k = (__pyx_v_kk + 1.0);

      /* "orthogonal_eval.pxd":471
 *         for kk in range(n-1):
 *             k = kk+1.0
 *             d = -x/(k+alpha+1)*p + (k/(k+alpha+1)) * d             # <<<<<<<<<<<<<<
 *             p = d + p
 *         return binom(n+alpha, n)*p
 */
      __pyx_v_d = ((((-__pyx_v_x) / ((__pyx_v_k + __pyx_v_alpha) + 1.0)) * __pyx_v_p) + ((__pyx_v_k / ((__pyx_v_k + __pyx_v_alpha) + 1.0)) * __pyx_v_d));

      /* "orthogonal_eval.pxd":472
 *             k = kk+1.0
 *             d = -x/(k+alpha+1)*p + (k/(k+alpha+1)) * d
 *             p = d + p             # <<<<<<<<<<<<<<
 *         return binom(n+alpha, n)*p
 * 
 */
      __pyx_v_p = (__pyx_v_d + __pyx_v_p);
    }

    /* "orthogonal_eval.pxd":473
 *             d = -x/(k+alpha+1)*p + (k/(k+alpha+1)) * d
 *             p = d + p
 *         return binom(n+alpha, n)*p             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
    __pyx_r = (__pyx_f_5scipy_7special_15orthogonal_eval_binom((__pyx_v_n + __pyx_v_alpha), __pyx_v_n) * __pyx_v_p);
    goto __pyx_L0;
  }

  /* "orthogonal_eval.pxd":447
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_genlaguerre_l(long n, double alpha, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long kk
 *     cdef double p, d
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":479
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_laguerre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_genlaguerre(n, 0., x)
 * 
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre(double __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":480
 * 
 * cdef inline number_t eval_laguerre(double n, number_t x) nogil:
 *     return eval_genlaguerre(n, 0., x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_laguerre_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(__pyx_v_n, 0., __pyx_v_x);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":479
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_laguerre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_genlaguerre(n, 0., x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre(double __pyx_v_n, __pyx_t_double_complex __pyx_v_x) {
  __pyx_t_double_complex __pyx_r;

  /* "orthogonal_eval.pxd":480
 * 
 * cdef inline number_t eval_laguerre(double n, number_t x) nogil:
 *     return eval_genlaguerre(n, 0., x)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double eval_laguerre_l(long n, double x) nogil:
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre(__pyx_v_n, 0., __pyx_v_x);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":479
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline number_t eval_laguerre(double n, number_t x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_genlaguerre(n, 0., x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":482
 *     return eval_genlaguerre(n, 0., x)
 * 
 * cdef inline double eval_laguerre_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_genlaguerre_l(n, 0., x)
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre_l(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;

  /* "orthogonal_eval.pxd":483
 * 
 * cdef inline double eval_laguerre_l(long n, double x) nogil:
 *     return eval_genlaguerre_l(n, 0., x)             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
  __pyx_r = __pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre_l(__pyx_v_n, 0., __pyx_v_x);
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":482
 *     return eval_genlaguerre(n, 0., x)
 * 
 * cdef inline double eval_laguerre_l(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     return eval_genlaguerre_l(n, 0., x)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":489
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline double eval_hermitenorm(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long k
 *     cdef double y1, y2, y3
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_hermitenorm(long __pyx_v_n, double __pyx_v_x) {
  long __pyx_v_k;
  double __pyx_v_y1;
  double __pyx_v_y2;
  double __pyx_v_y3;
  double __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;

  /* "orthogonal_eval.pxd":493
 *     cdef double y1, y2, y3
 * 
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 * 
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_x) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":494
 * 
 *     if npy_isnan(x):
 *         return x             # <<<<<<<<<<<<<<
 * 
 *     if n < 0:
 */
    __pyx_r = __pyx_v_x;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":493
 *     cdef double y1, y2, y3
 * 
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 * 
 */
  }

  /* "orthogonal_eval.pxd":496
 *         return x
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error(
 *             "eval_hermitenorm",
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":497
 * 
 *     if n < 0:
 *         sf_error.error(             # <<<<<<<<<<<<<<
 *             "eval_hermitenorm",
 *             sf_error.DOMAIN,
 */
    sf_error(((char *)"eval_hermitenorm"), SF_ERROR_DOMAIN, ((char *)"polynomial only defined for nonnegative n"));

    /* "orthogonal_eval.pxd":502
 *             "polynomial only defined for nonnegative n",
 *         )
 *         return nan             # <<<<<<<<<<<<<<
 *     elif n == 0:
 *         return 1.0
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":496
 *         return x
 * 
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error(
 *             "eval_hermitenorm",
 */
  }

  /* "orthogonal_eval.pxd":503
 *         )
 *         return nan
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":504
 *         return nan
 *     elif n == 0:
 *         return 1.0             # <<<<<<<<<<<<<<
 *     elif n == 1:
 *         return x
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":503
 *         )
 *         return nan
 *     elif n == 0:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif n == 1:
 */
  }

  /* "orthogonal_eval.pxd":505
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return x
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_n == 1) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":506
 *         return 1.0
 *     elif n == 1:
 *         return x             # <<<<<<<<<<<<<<
 *     else:
 *         y3 = 0.0
 */
    __pyx_r = __pyx_v_x;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":505
 *     elif n == 0:
 *         return 1.0
 *     elif n == 1:             # <<<<<<<<<<<<<<
 *         return x
 *     else:
 */
  }

  /* "orthogonal_eval.pxd":508
 *         return x
 *     else:
 *         y3 = 0.0             # <<<<<<<<<<<<<<
 *         y2 = 1.0
 *         for k in range(n, 1, -1):
 */
  /*else*/ {
    __pyx_v_y3 = 0.0;

    /* "orthogonal_eval.pxd":509
 *     else:
 *         y3 = 0.0
 *         y2 = 1.0             # <<<<<<<<<<<<<<
 *         for k in range(n, 1, -1):
 *             y1 = x*y2 - k*y3
 */
    __pyx_v_y2 = 1.0;

    /* "orthogonal_eval.pxd":510
 *         y3 = 0.0
 *         y2 = 1.0
 *         for k in range(n, 1, -1):             # <<<<<<<<<<<<<<
 *             y1 = x*y2 - k*y3
 *             y3 = y2
 */
    for (__pyx_t_2 = __pyx_v_n; __pyx_t_2 > 1; __pyx_t_2-=1) {
      __pyx_v_k = __pyx_t_2;

      /* "orthogonal_eval.pxd":511
 *         y2 = 1.0
 *         for k in range(n, 1, -1):
 *             y1 = x*y2 - k*y3             # <<<<<<<<<<<<<<
 *             y3 = y2
 *             y2 = y1
 */
      __pyx_v_y1 = ((__pyx_v_x * __pyx_v_y2) - (__pyx_v_k * __pyx_v_y3));

      /* "orthogonal_eval.pxd":512
 *         for k in range(n, 1, -1):
 *             y1 = x*y2 - k*y3
 *             y3 = y2             # <<<<<<<<<<<<<<
 *             y2 = y1
 *         return x*y2 - y3
 */
      __pyx_v_y3 = __pyx_v_y2;

      /* "orthogonal_eval.pxd":513
 *             y1 = x*y2 - k*y3
 *             y3 = y2
 *             y2 = y1             # <<<<<<<<<<<<<<
 *         return x*y2 - y3
 * 
 */
      __pyx_v_y2 = __pyx_v_y1;
    }

    /* "orthogonal_eval.pxd":514
 *             y3 = y2
 *             y2 = y1
 *         return x*y2 - y3             # <<<<<<<<<<<<<<
 * 
 * #-----------------------------------------------------------------------------
 */
    __pyx_r = ((__pyx_v_x * __pyx_v_y2) - __pyx_v_y3);
    goto __pyx_L0;
  }

  /* "orthogonal_eval.pxd":489
 * #-----------------------------------------------------------------------------
 * 
 * cdef inline double eval_hermitenorm(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef long k
 *     cdef double y1, y2, y3
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "orthogonal_eval.pxd":521
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_hermite(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error(
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15orthogonal_eval_eval_hermite(long __pyx_v_n, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "orthogonal_eval.pxd":522
 * @cython.cdivision(True)
 * cdef inline double eval_hermite(long n, double x) nogil:
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error(
 *             "eval_hermite",
 */
  __pyx_t_1 = ((__pyx_v_n < 0) != 0);
  if (__pyx_t_1) {

    /* "orthogonal_eval.pxd":523
 * cdef inline double eval_hermite(long n, double x) nogil:
 *     if n < 0:
 *         sf_error.error(             # <<<<<<<<<<<<<<
 *             "eval_hermite",
 *             sf_error.DOMAIN,
 */
    sf_error(((char *)"eval_hermite"), SF_ERROR_DOMAIN, ((char *)"polynomial only defined for nonnegative n"));

    /* "orthogonal_eval.pxd":528
 *             "polynomial only defined for nonnegative n",
 *         )
 *         return nan             # <<<<<<<<<<<<<<
 *     return eval_hermitenorm(n, sqrt(2)*x) * 2**(n/2.0)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "orthogonal_eval.pxd":522
 * @cython.cdivision(True)
 * cdef inline double eval_hermite(long n, double x) nogil:
 *     if n < 0:             # <<<<<<<<<<<<<<
 *         sf_error.error(
 *             "eval_hermite",
 */
  }

  /* "orthogonal_eval.pxd":529
 *         )
 *         return nan
 *     return eval_hermitenorm(n, sqrt(2)*x) * 2**(n/2.0)             # <<<<<<<<<<<<<<
 */
  __pyx_r = (__pyx_f_5scipy_7special_15orthogonal_eval_eval_hermitenorm(__pyx_v_n, (sqrt(2.0) * __pyx_v_x)) * pow(2.0, (((double)__pyx_v_n) / 2.0)));
  goto __pyx_L0;

  /* "orthogonal_eval.pxd":521
 * 
 * @cython.cdivision(True)
 * cdef inline double eval_hermite(long n, double x) nogil:             # <<<<<<<<<<<<<<
 *     if n < 0:
 *         sf_error.error(
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_boxcox.pxd":5
 * 
 * 
 * cdef inline double boxcox(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     # if lmbda << 1 and log(x) < 1.0, the lmbda*log(x) product can lose
 *     # precision, furthermore, expm1(x) == x for x < eps.
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_boxcox(double __pyx_v_x, double __pyx_v_lmbda) {
  double __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_boxcox.pxd":12
 *     # abs(lmbda)*log(x) < eps whenever abs(lmbda) <= eps/-log(min double)
 *     # which is ~2.98e-19.
 *     if fabs(lmbda) < 1e-19:             # <<<<<<<<<<<<<<
 *         return log(x)
 *     else:
 */
  __pyx_t_1 = ((fabs(__pyx_v_lmbda) < 1e-19) != 0);
  if (__pyx_t_1) {

    /* "_boxcox.pxd":13
 *     # which is ~2.98e-19.
 *     if fabs(lmbda) < 1e-19:
 *         return log(x)             # <<<<<<<<<<<<<<
 *     else:
 *         return expm1(lmbda * log(x)) / lmbda
 */
    __pyx_r = log(__pyx_v_x);
    goto __pyx_L0;

    /* "_boxcox.pxd":12
 *     # abs(lmbda)*log(x) < eps whenever abs(lmbda) <= eps/-log(min double)
 *     # which is ~2.98e-19.
 *     if fabs(lmbda) < 1e-19:             # <<<<<<<<<<<<<<
 *         return log(x)
 *     else:
 */
  }

  /* "_boxcox.pxd":15
 *         return log(x)
 *     else:
 *         return expm1(lmbda * log(x)) / lmbda             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_2 = expm1((__pyx_v_lmbda * log(__pyx_v_x)));
    if (unlikely(__pyx_v_lmbda == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(5, 15, __pyx_L1_error)
    }
    __pyx_r = (__pyx_t_2 / __pyx_v_lmbda);
    goto __pyx_L0;
  }

  /* "_boxcox.pxd":5
 * 
 * 
 * cdef inline double boxcox(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     # if lmbda << 1 and log(x) < 1.0, the lmbda*log(x) product can lose
 *     # precision, furthermore, expm1(x) == x for x < eps.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._boxcox.boxcox", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_boxcox.pxd":18
 * 
 * 
 * cdef inline double boxcox1p(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     # The argument given above in boxcox applies here with the modification
 *     # that the smallest value produced by log1p is the minimum representable
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_boxcox1p(double __pyx_v_x, double __pyx_v_lmbda) {
  double __pyx_v_lgx;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  double __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_boxcox.pxd":23
 *     # value, rather than eps.  The second condition here prevents unflow
 *     # when log1p(x) is < eps.
 *     cdef double lgx = log1p(x)             # <<<<<<<<<<<<<<
 *     if fabs(lmbda) < 1e-19 or (fabs(lgx) < 1e-289 and fabs(lmbda) < 1e273):
 *         return lgx
 */
  __pyx_v_lgx = log1p(__pyx_v_x);

  /* "_boxcox.pxd":24
 *     # when log1p(x) is < eps.
 *     cdef double lgx = log1p(x)
 *     if fabs(lmbda) < 1e-19 or (fabs(lgx) < 1e-289 and fabs(lmbda) < 1e273):             # <<<<<<<<<<<<<<
 *         return lgx
 *     else:
 */
  __pyx_t_2 = ((fabs(__pyx_v_lmbda) < 1e-19) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((fabs(__pyx_v_lgx) < 1e-289) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((fabs(__pyx_v_lmbda) < 1e273) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_boxcox.pxd":25
 *     cdef double lgx = log1p(x)
 *     if fabs(lmbda) < 1e-19 or (fabs(lgx) < 1e-289 and fabs(lmbda) < 1e273):
 *         return lgx             # <<<<<<<<<<<<<<
 *     else:
 *         return expm1(lmbda * lgx) / lmbda
 */
    __pyx_r = __pyx_v_lgx;
    goto __pyx_L0;

    /* "_boxcox.pxd":24
 *     # when log1p(x) is < eps.
 *     cdef double lgx = log1p(x)
 *     if fabs(lmbda) < 1e-19 or (fabs(lgx) < 1e-289 and fabs(lmbda) < 1e273):             # <<<<<<<<<<<<<<
 *         return lgx
 *     else:
 */
  }

  /* "_boxcox.pxd":27
 *         return lgx
 *     else:
 *         return expm1(lmbda * lgx) / lmbda             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_3 = expm1((__pyx_v_lmbda * __pyx_v_lgx));
    if (unlikely(__pyx_v_lmbda == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(5, 27, __pyx_L1_error)
    }
    __pyx_r = (__pyx_t_3 / __pyx_v_lmbda);
    goto __pyx_L0;
  }

  /* "_boxcox.pxd":18
 * 
 * 
 * cdef inline double boxcox1p(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     # The argument given above in boxcox applies here with the modification
 *     # that the smallest value produced by log1p is the minimum representable
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._boxcox.boxcox1p", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_boxcox.pxd":30
 * 
 * 
 * cdef inline double inv_boxcox(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     if lmbda == 0:
 *         return exp(x)
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_inv_boxcox(double __pyx_v_x, double __pyx_v_lmbda) {
  double __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_boxcox.pxd":31
 * 
 * cdef inline double inv_boxcox(double x, double lmbda) nogil:
 *     if lmbda == 0:             # <<<<<<<<<<<<<<
 *         return exp(x)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_lmbda == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_boxcox.pxd":32
 * cdef inline double inv_boxcox(double x, double lmbda) nogil:
 *     if lmbda == 0:
 *         return exp(x)             # <<<<<<<<<<<<<<
 *     else:
 *         return exp(log1p(lmbda * x) / lmbda)
 */
    __pyx_r = exp(__pyx_v_x);
    goto __pyx_L0;

    /* "_boxcox.pxd":31
 * 
 * cdef inline double inv_boxcox(double x, double lmbda) nogil:
 *     if lmbda == 0:             # <<<<<<<<<<<<<<
 *         return exp(x)
 *     else:
 */
  }

  /* "_boxcox.pxd":34
 *         return exp(x)
 *     else:
 *         return exp(log1p(lmbda * x) / lmbda)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_2 = log1p((__pyx_v_lmbda * __pyx_v_x));
    if (unlikely(__pyx_v_lmbda == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(5, 34, __pyx_L1_error)
    }
    __pyx_r = exp((__pyx_t_2 / __pyx_v_lmbda));
    goto __pyx_L0;
  }

  /* "_boxcox.pxd":30
 * 
 * 
 * cdef inline double inv_boxcox(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     if lmbda == 0:
 *         return exp(x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._boxcox.inv_boxcox", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_boxcox.pxd":37
 * 
 * 
 * cdef inline double inv_boxcox1p(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     if lmbda == 0:
 *         return expm1(x)
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_boxcox_inv_boxcox1p(double __pyx_v_x, double __pyx_v_lmbda) {
  double __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_boxcox.pxd":38
 * 
 * cdef inline double inv_boxcox1p(double x, double lmbda) nogil:
 *     if lmbda == 0:             # <<<<<<<<<<<<<<
 *         return expm1(x)
 *     elif fabs(lmbda * x) < 1e-154:
 */
  __pyx_t_1 = ((__pyx_v_lmbda == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_boxcox.pxd":39
 * cdef inline double inv_boxcox1p(double x, double lmbda) nogil:
 *     if lmbda == 0:
 *         return expm1(x)             # <<<<<<<<<<<<<<
 *     elif fabs(lmbda * x) < 1e-154:
 *         return x
 */
    __pyx_r = expm1(__pyx_v_x);
    goto __pyx_L0;

    /* "_boxcox.pxd":38
 * 
 * cdef inline double inv_boxcox1p(double x, double lmbda) nogil:
 *     if lmbda == 0:             # <<<<<<<<<<<<<<
 *         return expm1(x)
 *     elif fabs(lmbda * x) < 1e-154:
 */
  }

  /* "_boxcox.pxd":40
 *     if lmbda == 0:
 *         return expm1(x)
 *     elif fabs(lmbda * x) < 1e-154:             # <<<<<<<<<<<<<<
 *         return x
 *     else:
 */
  __pyx_t_1 = ((fabs((__pyx_v_lmbda * __pyx_v_x)) < 1e-154) != 0);
  if (__pyx_t_1) {

    /* "_boxcox.pxd":41
 *         return expm1(x)
 *     elif fabs(lmbda * x) < 1e-154:
 *         return x             # <<<<<<<<<<<<<<
 *     else:
 *         return expm1(log1p(lmbda * x) / lmbda)
 */
    __pyx_r = __pyx_v_x;
    goto __pyx_L0;

    /* "_boxcox.pxd":40
 *     if lmbda == 0:
 *         return expm1(x)
 *     elif fabs(lmbda * x) < 1e-154:             # <<<<<<<<<<<<<<
 *         return x
 *     else:
 */
  }

  /* "_boxcox.pxd":43
 *         return x
 *     else:
 *         return expm1(log1p(lmbda * x) / lmbda)             # <<<<<<<<<<<<<<
 */
  /*else*/ {
    __pyx_t_2 = log1p((__pyx_v_lmbda * __pyx_v_x));
    if (unlikely(__pyx_v_lmbda == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(5, 43, __pyx_L1_error)
    }
    __pyx_r = expm1((__pyx_t_2 / __pyx_v_lmbda));
    goto __pyx_L0;
  }

  /* "_boxcox.pxd":37
 * 
 * 
 * cdef inline double inv_boxcox1p(double x, double lmbda) nogil:             # <<<<<<<<<<<<<<
 *     if lmbda == 0:
 *         return expm1(x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._boxcox.inv_boxcox1p", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_ellipk.pxd":4
 * 
 * 
 * cdef inline double ellipk(double m) nogil:             # <<<<<<<<<<<<<<
 *     return ellpk(1.0 - m)
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_ellipk_ellipk(double __pyx_v_m) {
  double __pyx_r;

  /* "_ellipk.pxd":5
 * 
 * cdef inline double ellipk(double m) nogil:
 *     return ellpk(1.0 - m)             # <<<<<<<<<<<<<<
 */
  __pyx_r = ellpk((1.0 - __pyx_v_m));
  goto __pyx_L0;

  /* "_ellipk.pxd":4
 * 
 * 
 * cdef inline double ellipk(double m) nogil:             # <<<<<<<<<<<<<<
 *     return ellpk(1.0 - m)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_convex_analysis.pxd":8
 * from libc.math cimport log, sqrt, fabs
 * 
 * cdef inline double entr(double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(x):
 *         return x
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_entr(double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_convex_analysis.pxd":9
 * 
 * cdef inline double entr(double x) nogil:
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 *     elif x > 0:
 */
  __pyx_t_1 = (npy_isnan(__pyx_v_x) != 0);
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":10
 * cdef inline double entr(double x) nogil:
 *     if npy_isnan(x):
 *         return x             # <<<<<<<<<<<<<<
 *     elif x > 0:
 *         return -x * log(x)
 */
    __pyx_r = __pyx_v_x;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":9
 * 
 * cdef inline double entr(double x) nogil:
 *     if npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return x
 *     elif x > 0:
 */
  }

  /* "_convex_analysis.pxd":11
 *     if npy_isnan(x):
 *         return x
 *     elif x > 0:             # <<<<<<<<<<<<<<
 *         return -x * log(x)
 *     elif x == 0:
 */
  __pyx_t_1 = ((__pyx_v_x > 0.0) != 0);
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":12
 *         return x
 *     elif x > 0:
 *         return -x * log(x)             # <<<<<<<<<<<<<<
 *     elif x == 0:
 *         return 0
 */
    __pyx_r = ((-__pyx_v_x) * log(__pyx_v_x));
    goto __pyx_L0;

    /* "_convex_analysis.pxd":11
 *     if npy_isnan(x):
 *         return x
 *     elif x > 0:             # <<<<<<<<<<<<<<
 *         return -x * log(x)
 *     elif x == 0:
 */
  }

  /* "_convex_analysis.pxd":13
 *     elif x > 0:
 *         return -x * log(x)
 *     elif x == 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":14
 *         return -x * log(x)
 *     elif x == 0:
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         return -inf
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":13
 *     elif x > 0:
 *         return -x * log(x)
 *     elif x == 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  }

  /* "_convex_analysis.pxd":16
 *         return 0
 *     else:
 *         return -inf             # <<<<<<<<<<<<<<
 * 
 * cdef inline double kl_div(double x, double y) nogil:
 */
  /*else*/ {
    __pyx_r = (-NPY_INFINITY);
    goto __pyx_L0;
  }

  /* "_convex_analysis.pxd":8
 * from libc.math cimport log, sqrt, fabs
 * 
 * cdef inline double entr(double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(x):
 *         return x
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_convex_analysis.pxd":18
 *         return -inf
 * 
 * cdef inline double kl_div(double x, double y) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_kl_div(double __pyx_v_x, double __pyx_v_y) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_convex_analysis.pxd":19
 * 
 * cdef inline double kl_div(double x, double y) nogil:
 *     if npy_isnan(x) or npy_isnan(y):             # <<<<<<<<<<<<<<
 *         return nan
 *     elif x > 0 and y > 0:
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_x) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_y) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":20
 * cdef inline double kl_div(double x, double y) nogil:
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan             # <<<<<<<<<<<<<<
 *     elif x > 0 and y > 0:
 *         return x * log(x / y) - x + y
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":19
 * 
 * cdef inline double kl_div(double x, double y) nogil:
 *     if npy_isnan(x) or npy_isnan(y):             # <<<<<<<<<<<<<<
 *         return nan
 *     elif x > 0 and y > 0:
 */
  }

  /* "_convex_analysis.pxd":21
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 *     elif x > 0 and y > 0:             # <<<<<<<<<<<<<<
 *         return x * log(x / y) - x + y
 *     elif x == 0 and y >= 0:
 */
  __pyx_t_2 = ((__pyx_v_x > 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_y > 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":22
 *         return nan
 *     elif x > 0 and y > 0:
 *         return x * log(x / y) - x + y             # <<<<<<<<<<<<<<
 *     elif x == 0 and y >= 0:
 *         return y
 */
    if (unlikely(__pyx_v_y == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(6, 22, __pyx_L1_error)
    }
    __pyx_r = (((__pyx_v_x * log((__pyx_v_x / __pyx_v_y))) - __pyx_v_x) + __pyx_v_y);
    goto __pyx_L0;

    /* "_convex_analysis.pxd":21
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 *     elif x > 0 and y > 0:             # <<<<<<<<<<<<<<
 *         return x * log(x / y) - x + y
 *     elif x == 0 and y >= 0:
 */
  }

  /* "_convex_analysis.pxd":23
 *     elif x > 0 and y > 0:
 *         return x * log(x / y) - x + y
 *     elif x == 0 and y >= 0:             # <<<<<<<<<<<<<<
 *         return y
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_y >= 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":24
 *         return x * log(x / y) - x + y
 *     elif x == 0 and y >= 0:
 *         return y             # <<<<<<<<<<<<<<
 *     else:
 *         return inf
 */
    __pyx_r = __pyx_v_y;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":23
 *     elif x > 0 and y > 0:
 *         return x * log(x / y) - x + y
 *     elif x == 0 and y >= 0:             # <<<<<<<<<<<<<<
 *         return y
 *     else:
 */
  }

  /* "_convex_analysis.pxd":26
 *         return y
 *     else:
 *         return inf             # <<<<<<<<<<<<<<
 * 
 * cdef inline double rel_entr(double x, double y) nogil:
 */
  /*else*/ {
    __pyx_r = NPY_INFINITY;
    goto __pyx_L0;
  }

  /* "_convex_analysis.pxd":18
 *         return -inf
 * 
 * cdef inline double kl_div(double x, double y) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._convex_analysis.kl_div", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_convex_analysis.pxd":28
 *         return inf
 * 
 * cdef inline double rel_entr(double x, double y) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_rel_entr(double __pyx_v_x, double __pyx_v_y) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_convex_analysis.pxd":29
 * 
 * cdef inline double rel_entr(double x, double y) nogil:
 *     if npy_isnan(x) or npy_isnan(y):             # <<<<<<<<<<<<<<
 *         return nan
 *     elif x > 0 and y > 0:
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_x) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_y) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":30
 * cdef inline double rel_entr(double x, double y) nogil:
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan             # <<<<<<<<<<<<<<
 *     elif x > 0 and y > 0:
 *         return x * log(x / y)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":29
 * 
 * cdef inline double rel_entr(double x, double y) nogil:
 *     if npy_isnan(x) or npy_isnan(y):             # <<<<<<<<<<<<<<
 *         return nan
 *     elif x > 0 and y > 0:
 */
  }

  /* "_convex_analysis.pxd":31
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 *     elif x > 0 and y > 0:             # <<<<<<<<<<<<<<
 *         return x * log(x / y)
 *     elif x == 0 and y >= 0:
 */
  __pyx_t_2 = ((__pyx_v_x > 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_y > 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":32
 *         return nan
 *     elif x > 0 and y > 0:
 *         return x * log(x / y)             # <<<<<<<<<<<<<<
 *     elif x == 0 and y >= 0:
 *         return 0
 */
    if (unlikely(__pyx_v_y == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(6, 32, __pyx_L1_error)
    }
    __pyx_r = (__pyx_v_x * log((__pyx_v_x / __pyx_v_y)));
    goto __pyx_L0;

    /* "_convex_analysis.pxd":31
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 *     elif x > 0 and y > 0:             # <<<<<<<<<<<<<<
 *         return x * log(x / y)
 *     elif x == 0 and y >= 0:
 */
  }

  /* "_convex_analysis.pxd":33
 *     elif x > 0 and y > 0:
 *         return x * log(x / y)
 *     elif x == 0 and y >= 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_y >= 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":34
 *         return x * log(x / y)
 *     elif x == 0 and y >= 0:
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         return inf
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":33
 *     elif x > 0 and y > 0:
 *         return x * log(x / y)
 *     elif x == 0 and y >= 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  }

  /* "_convex_analysis.pxd":36
 *         return 0
 *     else:
 *         return inf             # <<<<<<<<<<<<<<
 * 
 * cdef inline double huber(double delta, double r) nogil:
 */
  /*else*/ {
    __pyx_r = NPY_INFINITY;
    goto __pyx_L0;
  }

  /* "_convex_analysis.pxd":28
 *         return inf
 * 
 * cdef inline double rel_entr(double x, double y) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(x) or npy_isnan(y):
 *         return nan
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._convex_analysis.rel_entr", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_convex_analysis.pxd":38
 *         return inf
 * 
 * cdef inline double huber(double delta, double r) nogil:             # <<<<<<<<<<<<<<
 *     if delta < 0:
 *         return inf
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_huber(double __pyx_v_delta, double __pyx_v_r) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_convex_analysis.pxd":39
 * 
 * cdef inline double huber(double delta, double r) nogil:
 *     if delta < 0:             # <<<<<<<<<<<<<<
 *         return inf
 *     elif fabs(r) <= delta:
 */
  __pyx_t_1 = ((__pyx_v_delta < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":40
 * cdef inline double huber(double delta, double r) nogil:
 *     if delta < 0:
 *         return inf             # <<<<<<<<<<<<<<
 *     elif fabs(r) <= delta:
 *         return 0.5 * r * r;
 */
    __pyx_r = NPY_INFINITY;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":39
 * 
 * cdef inline double huber(double delta, double r) nogil:
 *     if delta < 0:             # <<<<<<<<<<<<<<
 *         return inf
 *     elif fabs(r) <= delta:
 */
  }

  /* "_convex_analysis.pxd":41
 *     if delta < 0:
 *         return inf
 *     elif fabs(r) <= delta:             # <<<<<<<<<<<<<<
 *         return 0.5 * r * r;
 *     else:
 */
  __pyx_t_1 = ((fabs(__pyx_v_r) <= __pyx_v_delta) != 0);
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":42
 *         return inf
 *     elif fabs(r) <= delta:
 *         return 0.5 * r * r;             # <<<<<<<<<<<<<<
 *     else:
 *         return delta * (fabs(r) - 0.5 * delta);
 */
    __pyx_r = ((0.5 * __pyx_v_r) * __pyx_v_r);
    goto __pyx_L0;

    /* "_convex_analysis.pxd":41
 *     if delta < 0:
 *         return inf
 *     elif fabs(r) <= delta:             # <<<<<<<<<<<<<<
 *         return 0.5 * r * r;
 *     else:
 */
  }

  /* "_convex_analysis.pxd":44
 *         return 0.5 * r * r;
 *     else:
 *         return delta * (fabs(r) - 0.5 * delta);             # <<<<<<<<<<<<<<
 * 
 * cdef inline double pseudo_huber(double delta, double r) nogil:
 */
  /*else*/ {
    __pyx_r = (__pyx_v_delta * (fabs(__pyx_v_r) - (0.5 * __pyx_v_delta)));
    goto __pyx_L0;
  }

  /* "_convex_analysis.pxd":38
 *         return inf
 * 
 * cdef inline double huber(double delta, double r) nogil:             # <<<<<<<<<<<<<<
 *     if delta < 0:
 *         return inf
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_convex_analysis.pxd":46
 *         return delta * (fabs(r) - 0.5 * delta);
 * 
 * cdef inline double pseudo_huber(double delta, double r) nogil:             # <<<<<<<<<<<<<<
 *     cdef double u, v
 *     if delta < 0:
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_16_convex_analysis_pseudo_huber(double __pyx_v_delta, double __pyx_v_r) {
  double __pyx_v_u;
  double __pyx_v_v;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_convex_analysis.pxd":48
 * cdef inline double pseudo_huber(double delta, double r) nogil:
 *     cdef double u, v
 *     if delta < 0:             # <<<<<<<<<<<<<<
 *         return inf
 *     elif delta == 0 or r == 0:
 */
  __pyx_t_1 = ((__pyx_v_delta < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":49
 *     cdef double u, v
 *     if delta < 0:
 *         return inf             # <<<<<<<<<<<<<<
 *     elif delta == 0 or r == 0:
 *         return 0
 */
    __pyx_r = NPY_INFINITY;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":48
 * cdef inline double pseudo_huber(double delta, double r) nogil:
 *     cdef double u, v
 *     if delta < 0:             # <<<<<<<<<<<<<<
 *         return inf
 *     elif delta == 0 or r == 0:
 */
  }

  /* "_convex_analysis.pxd":50
 *     if delta < 0:
 *         return inf
 *     elif delta == 0 or r == 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_delta == 0.0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_r == 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_convex_analysis.pxd":51
 *         return inf
 *     elif delta == 0 or r == 0:
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         u = delta
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_convex_analysis.pxd":50
 *     if delta < 0:
 *         return inf
 *     elif delta == 0 or r == 0:             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  }

  /* "_convex_analysis.pxd":53
 *         return 0
 *     else:
 *         u = delta             # <<<<<<<<<<<<<<
 *         v = r / delta
 *         return u*u*(sqrt(1 + v*v) - 1)
 */
  /*else*/ {
    __pyx_v_u = __pyx_v_delta;

    /* "_convex_analysis.pxd":54
 *     else:
 *         u = delta
 *         v = r / delta             # <<<<<<<<<<<<<<
 *         return u*u*(sqrt(1 + v*v) - 1)
 */
    if (unlikely(__pyx_v_delta == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(6, 54, __pyx_L1_error)
    }
    __pyx_v_v = (__pyx_v_r / __pyx_v_delta);

    /* "_convex_analysis.pxd":55
 *         u = delta
 *         v = r / delta
 *         return u*u*(sqrt(1 + v*v) - 1)             # <<<<<<<<<<<<<<
 */
    __pyx_r = ((__pyx_v_u * __pyx_v_u) * (sqrt((1.0 + (__pyx_v_v * __pyx_v_v))) - 1.0));
    goto __pyx_L0;
  }

  /* "_convex_analysis.pxd":46
 *         return delta * (fabs(r) - 0.5 * delta);
 * 
 * cdef inline double pseudo_huber(double delta, double r) nogil:             # <<<<<<<<<<<<<<
 *     cdef double u, v
 *     if delta < 0:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._convex_analysis.pseudo_huber", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_cunity.pxd":39
 * # y = +/-sqrt(2*fabs(x)). To get around this cancellation problem, we use
 * # double-double precision when necessary.
 * cdef inline double complex clog1p(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double zr, zi, x, y, az, azi
 *     cdef np.npy_cdouble ret
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_cunity_clog1p(__pyx_t_double_complex __pyx_v_z) {
  double __pyx_v_zr;
  double __pyx_v_zi;
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_v_az;
  double __pyx_v_azi;
  npy_cdouble __pyx_v_ret;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_t_3;
  double __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_cunity.pxd":43
 *     cdef np.npy_cdouble ret
 * 
 *     if not zisfinite(z):             # <<<<<<<<<<<<<<
 *         z = z + 1
 *         ret = npy_clog(npy_cdouble_from_double_complex(z))
 */
  __pyx_t_1 = ((!(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisfinite(__pyx_v_z) != 0)) != 0);
  if (__pyx_t_1) {

    /* "_cunity.pxd":44
 * 
 *     if not zisfinite(z):
 *         z = z + 1             # <<<<<<<<<<<<<<
 *         ret = npy_clog(npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(ret)
 */
    __pyx_v_z = __Pyx_c_sum_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0));

    /* "_cunity.pxd":45
 *     if not zisfinite(z):
 *         z = z + 1
 *         ret = npy_clog(npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(ret)
 * 
 */
    __pyx_v_ret = npy_clog(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

    /* "_cunity.pxd":46
 *         z = z + 1
 *         ret = npy_clog(npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(ret)             # <<<<<<<<<<<<<<
 * 
 *     zr = z.real
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_ret);
    goto __pyx_L0;

    /* "_cunity.pxd":43
 *     cdef np.npy_cdouble ret
 * 
 *     if not zisfinite(z):             # <<<<<<<<<<<<<<
 *         z = z + 1
 *         ret = npy_clog(npy_cdouble_from_double_complex(z))
 */
  }

  /* "_cunity.pxd":48
 *         return double_complex_from_npy_cdouble(ret)
 * 
 *     zr = z.real             # <<<<<<<<<<<<<<
 *     zi = z.imag
 * 
 */
  __pyx_t_2 = __Pyx_CREAL(__pyx_v_z);
  __pyx_v_zr = __pyx_t_2;

  /* "_cunity.pxd":49
 * 
 *     zr = z.real
 *     zi = z.imag             # <<<<<<<<<<<<<<
 * 
 *     if zi == 0.0 and zr >= -1.0:
 */
  __pyx_t_2 = __Pyx_CIMAG(__pyx_v_z);
  __pyx_v_zi = __pyx_t_2;

  /* "_cunity.pxd":51
 *     zi = z.imag
 * 
 *     if zi == 0.0 and zr >= -1.0:             # <<<<<<<<<<<<<<
 *         return zpack(log1p(zr), 0.0)
 * 
 */
  __pyx_t_3 = ((__pyx_v_zi == 0.0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_zr >= -1.0) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_cunity.pxd":52
 * 
 *     if zi == 0.0 and zr >= -1.0:
 *         return zpack(log1p(zr), 0.0)             # <<<<<<<<<<<<<<
 * 
 *     az = zabs(z)
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(log1p(__pyx_v_zr), 0.0);
    goto __pyx_L0;

    /* "_cunity.pxd":51
 *     zi = z.imag
 * 
 *     if zi == 0.0 and zr >= -1.0:             # <<<<<<<<<<<<<<
 *         return zpack(log1p(zr), 0.0)
 * 
 */
  }

  /* "_cunity.pxd":54
 *         return zpack(log1p(zr), 0.0)
 * 
 *     az = zabs(z)             # <<<<<<<<<<<<<<
 *     if az < 0.707:
 *         azi = fabs(zi)
 */
  __pyx_v_az = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z);

  /* "_cunity.pxd":55
 * 
 *     az = zabs(z)
 *     if az < 0.707:             # <<<<<<<<<<<<<<
 *         azi = fabs(zi)
 *         if zr < 0 and fabs(-zr - azi*azi/2)/(-zr) < 0.5:
 */
  __pyx_t_1 = ((__pyx_v_az < 0.707) != 0);
  if (__pyx_t_1) {

    /* "_cunity.pxd":56
 *     az = zabs(z)
 *     if az < 0.707:
 *         azi = fabs(zi)             # <<<<<<<<<<<<<<
 *         if zr < 0 and fabs(-zr - azi*azi/2)/(-zr) < 0.5:
 *             return clog1p_ddouble(zr, zi)
 */
    __pyx_v_azi = fabs(__pyx_v_zi);

    /* "_cunity.pxd":57
 *     if az < 0.707:
 *         azi = fabs(zi)
 *         if zr < 0 and fabs(-zr - azi*azi/2)/(-zr) < 0.5:             # <<<<<<<<<<<<<<
 *             return clog1p_ddouble(zr, zi)
 *         else:
 */
    __pyx_t_3 = ((__pyx_v_zr < 0.0) != 0);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L9_bool_binop_done;
    }
    __pyx_t_2 = fabs(((-__pyx_v_zr) - ((__pyx_v_azi * __pyx_v_azi) / 2.0)));
    __pyx_t_4 = (-__pyx_v_zr);
    if (unlikely(__pyx_t_4 == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(7, 57, __pyx_L1_error)
    }
    __pyx_t_3 = (((__pyx_t_2 / __pyx_t_4) < 0.5) != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L9_bool_binop_done:;
    if (__pyx_t_1) {

      /* "_cunity.pxd":58
 *         azi = fabs(zi)
 *         if zr < 0 and fabs(-zr - azi*azi/2)/(-zr) < 0.5:
 *             return clog1p_ddouble(zr, zi)             # <<<<<<<<<<<<<<
 *         else:
 *             x = 0.5 * log1p(az*(az + 2*zr/az))
 */
      __pyx_r = __pyx_f_5scipy_7special_7_cunity_clog1p_ddouble(__pyx_v_zr, __pyx_v_zi);
      goto __pyx_L0;

      /* "_cunity.pxd":57
 *     if az < 0.707:
 *         azi = fabs(zi)
 *         if zr < 0 and fabs(-zr - azi*azi/2)/(-zr) < 0.5:             # <<<<<<<<<<<<<<
 *             return clog1p_ddouble(zr, zi)
 *         else:
 */
    }

    /* "_cunity.pxd":60
 *             return clog1p_ddouble(zr, zi)
 *         else:
 *             x = 0.5 * log1p(az*(az + 2*zr/az))             # <<<<<<<<<<<<<<
 *             y = npy_atan2(zi, zr + 1.0)
 *             return zpack(x, y)
 */
    /*else*/ {
      __pyx_t_4 = (2.0 * __pyx_v_zr);
      if (unlikely(__pyx_v_az == 0)) {
        #ifdef WITH_THREAD
        PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
        #endif
        PyErr_SetString(PyExc_ZeroDivisionError, "float division");
        #ifdef WITH_THREAD
        __Pyx_PyGILState_Release(__pyx_gilstate_save);
        #endif
        __PYX_ERR(7, 60, __pyx_L1_error)
      }
      __pyx_v_x = (0.5 * log1p((__pyx_v_az * (__pyx_v_az + (__pyx_t_4 / __pyx_v_az)))));

      /* "_cunity.pxd":61
 *         else:
 *             x = 0.5 * log1p(az*(az + 2*zr/az))
 *             y = npy_atan2(zi, zr + 1.0)             # <<<<<<<<<<<<<<
 *             return zpack(x, y)
 * 
 */
      __pyx_v_y = npy_atan2(__pyx_v_zi, (__pyx_v_zr + 1.0));

      /* "_cunity.pxd":62
 *             x = 0.5 * log1p(az*(az + 2*zr/az))
 *             y = npy_atan2(zi, zr + 1.0)
 *             return zpack(x, y)             # <<<<<<<<<<<<<<
 * 
 *     z = z + 1.0
 */
      __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(__pyx_v_x, __pyx_v_y);
      goto __pyx_L0;
    }

    /* "_cunity.pxd":55
 * 
 *     az = zabs(z)
 *     if az < 0.707:             # <<<<<<<<<<<<<<
 *         azi = fabs(zi)
 *         if zr < 0 and fabs(-zr - azi*azi/2)/(-zr) < 0.5:
 */
  }

  /* "_cunity.pxd":64
 *             return zpack(x, y)
 * 
 *     z = z + 1.0             # <<<<<<<<<<<<<<
 *     ret = npy_clog(npy_cdouble_from_double_complex(z))
 *     return double_complex_from_npy_cdouble(ret)
 */
  __pyx_v_z = __Pyx_c_sum_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1.0, 0));

  /* "_cunity.pxd":65
 * 
 *     z = z + 1.0
 *     ret = npy_clog(npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *     return double_complex_from_npy_cdouble(ret)
 * 
 */
  __pyx_v_ret = npy_clog(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "_cunity.pxd":66
 *     z = z + 1.0
 *     ret = npy_clog(npy_cdouble_from_double_complex(z))
 *     return double_complex_from_npy_cdouble(ret)             # <<<<<<<<<<<<<<
 * 
 * cdef inline double complex clog1p_ddouble(double zr, double zi) nogil:
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_ret);
  goto __pyx_L0;

  /* "_cunity.pxd":39
 * # y = +/-sqrt(2*fabs(x)). To get around this cancellation problem, we use
 * # double-double precision when necessary.
 * cdef inline double complex clog1p(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double zr, zi, x, y, az, azi
 *     cdef np.npy_cdouble ret
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._cunity.clog1p", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
  __pyx_L0:;
  return __pyx_r;
}

/* "_cunity.pxd":68
 *     return double_complex_from_npy_cdouble(ret)
 * 
 * cdef inline double complex clog1p_ddouble(double zr, double zi) nogil:             # <<<<<<<<<<<<<<
 *     cdef double x, y
 *     cdef double2 r, i, two, rsqr, isqr, rtwo, absm1
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_cunity_clog1p_ddouble(double __pyx_v_zr, double __pyx_v_zi) {
  double __pyx_v_x;
  double __pyx_v_y;
  double2 __pyx_v_r;
  double2 __pyx_v_i;
  double2 __pyx_v_two;
  double2 __pyx_v_rsqr;
  double2 __pyx_v_isqr;
  double2 __pyx_v_rtwo;
  double2 __pyx_v_absm1;
  __pyx_t_double_complex __pyx_r;

  /* "_cunity.pxd":72
 *     cdef double2 r, i, two, rsqr, isqr, rtwo, absm1
 * 
 *     r = dd_create_d(zr)             # <<<<<<<<<<<<<<
 *     i = dd_create_d(zi)
 *     two = dd_create_d(2.0)
 */
  __pyx_v_r = dd_create_d(__pyx_v_zr);

  /* "_cunity.pxd":73
 * 
 *     r = dd_create_d(zr)
 *     i = dd_create_d(zi)             # <<<<<<<<<<<<<<
 *     two = dd_create_d(2.0)
 * 
 */
  __pyx_v_i = dd_create_d(__pyx_v_zi);

  /* "_cunity.pxd":74
 *     r = dd_create_d(zr)
 *     i = dd_create_d(zi)
 *     two = dd_create_d(2.0)             # <<<<<<<<<<<<<<
 * 
 *     rsqr = dd_mul(r, r)
 */
  __pyx_v_two = dd_create_d(2.0);

  /* "_cunity.pxd":76
 *     two = dd_create_d(2.0)
 * 
 *     rsqr = dd_mul(r, r)             # <<<<<<<<<<<<<<
 *     isqr = dd_mul(i, i)
 *     rtwo = dd_mul(two, r)
 */
  __pyx_v_rsqr = dd_mul(__pyx_v_r, __pyx_v_r);

  /* "_cunity.pxd":77
 * 
 *     rsqr = dd_mul(r, r)
 *     isqr = dd_mul(i, i)             # <<<<<<<<<<<<<<
 *     rtwo = dd_mul(two, r)
 *     absm1 = dd_add(rsqr, isqr)
 */
  __pyx_v_isqr = dd_mul(__pyx_v_i, __pyx_v_i);

  /* "_cunity.pxd":78
 *     rsqr = dd_mul(r, r)
 *     isqr = dd_mul(i, i)
 *     rtwo = dd_mul(two, r)             # <<<<<<<<<<<<<<
 *     absm1 = dd_add(rsqr, isqr)
 *     absm1 = dd_add(absm1, rtwo)
 */
  __pyx_v_rtwo = dd_mul(__pyx_v_two, __pyx_v_r);

  /* "_cunity.pxd":79
 *     isqr = dd_mul(i, i)
 *     rtwo = dd_mul(two, r)
 *     absm1 = dd_add(rsqr, isqr)             # <<<<<<<<<<<<<<
 *     absm1 = dd_add(absm1, rtwo)
 * 
 */
  __pyx_v_absm1 = dd_add(__pyx_v_rsqr, __pyx_v_isqr);

  /* "_cunity.pxd":80
 *     rtwo = dd_mul(two, r)
 *     absm1 = dd_add(rsqr, isqr)
 *     absm1 = dd_add(absm1, rtwo)             # <<<<<<<<<<<<<<
 * 
 *     x = 0.5 * log1p(dd_to_double(absm1))
 */
  __pyx_v_absm1 = dd_add(__pyx_v_absm1, __pyx_v_rtwo);

  /* "_cunity.pxd":82
 *     absm1 = dd_add(absm1, rtwo)
 * 
 *     x = 0.5 * log1p(dd_to_double(absm1))             # <<<<<<<<<<<<<<
 *     y = npy_atan2(zi, zr+1.0)
 *     return zpack(x, y)
 */
  __pyx_v_x = (0.5 * log1p(dd_to_double(__pyx_v_absm1)));

  /* "_cunity.pxd":83
 * 
 *     x = 0.5 * log1p(dd_to_double(absm1))
 *     y = npy_atan2(zi, zr+1.0)             # <<<<<<<<<<<<<<
 *     return zpack(x, y)
 * 
 */
  __pyx_v_y = npy_atan2(__pyx_v_zi, (__pyx_v_zr + 1.0));

  /* "_cunity.pxd":84
 *     x = 0.5 * log1p(dd_to_double(absm1))
 *     y = npy_atan2(zi, zr+1.0)
 *     return zpack(x, y)             # <<<<<<<<<<<<<<
 * 
 * # cexpm1(z) = cexp(z) - 1
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(__pyx_v_x, __pyx_v_y);
  goto __pyx_L0;

  /* "_cunity.pxd":68
 *     return double_complex_from_npy_cdouble(ret)
 * 
 * cdef inline double complex clog1p_ddouble(double zr, double zi) nogil:             # <<<<<<<<<<<<<<
 *     cdef double x, y
 *     cdef double2 r, i, two, rsqr, isqr, rtwo, absm1
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_cunity.pxd":93
 * # doesn't involve computing exp(z.real) and/or cos(z.imag) to higher
 * # precision.
 * cdef inline double complex cexpm1(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double zr, zi, ezr, x, y
 *     cdef np.npy_cdouble ret
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_cunity_cexpm1(__pyx_t_double_complex __pyx_v_z) {
  double __pyx_v_zr;
  double __pyx_v_zi;
  double __pyx_v_ezr;
  double __pyx_v_x;
  double __pyx_v_y;
  npy_cdouble __pyx_v_ret;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;

  /* "_cunity.pxd":97
 *     cdef np.npy_cdouble ret
 * 
 *     if not zisfinite(z):             # <<<<<<<<<<<<<<
 *         ret = npy_cexp(npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(ret) - 1.0
 */
  __pyx_t_1 = ((!(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisfinite(__pyx_v_z) != 0)) != 0);
  if (__pyx_t_1) {

    /* "_cunity.pxd":98
 * 
 *     if not zisfinite(z):
 *         ret = npy_cexp(npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *         return double_complex_from_npy_cdouble(ret) - 1.0
 * 
 */
    __pyx_v_ret = npy_cexp(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

    /* "_cunity.pxd":99
 *     if not zisfinite(z):
 *         ret = npy_cexp(npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(ret) - 1.0             # <<<<<<<<<<<<<<
 * 
 *     zr = z.real
 */
    __pyx_r = __Pyx_c_diff_double(__pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_ret), __pyx_t_double_complex_from_parts(1.0, 0));
    goto __pyx_L0;

    /* "_cunity.pxd":97
 *     cdef np.npy_cdouble ret
 * 
 *     if not zisfinite(z):             # <<<<<<<<<<<<<<
 *         ret = npy_cexp(npy_cdouble_from_double_complex(z))
 *         return double_complex_from_npy_cdouble(ret) - 1.0
 */
  }

  /* "_cunity.pxd":101
 *         return double_complex_from_npy_cdouble(ret) - 1.0
 * 
 *     zr = z.real             # <<<<<<<<<<<<<<
 *     zi = z.imag
 * 
 */
  __pyx_t_2 = __Pyx_CREAL(__pyx_v_z);
  __pyx_v_zr = __pyx_t_2;

  /* "_cunity.pxd":102
 * 
 *     zr = z.real
 *     zi = z.imag             # <<<<<<<<<<<<<<
 * 
 *     if zr <= -40:
 */
  __pyx_t_2 = __Pyx_CIMAG(__pyx_v_z);
  __pyx_v_zi = __pyx_t_2;

  /* "_cunity.pxd":104
 *     zi = z.imag
 * 
 *     if zr <= -40:             # <<<<<<<<<<<<<<
 *         x = -1.0
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_zr <= -40.0) != 0);
  if (__pyx_t_1) {

    /* "_cunity.pxd":105
 * 
 *     if zr <= -40:
 *         x = -1.0             # <<<<<<<<<<<<<<
 *     else:
 *         ezr = expm1(zr)
 */
    __pyx_v_x = -1.0;

    /* "_cunity.pxd":104
 *     zi = z.imag
 * 
 *     if zr <= -40:             # <<<<<<<<<<<<<<
 *         x = -1.0
 *     else:
 */
    goto __pyx_L4;
  }

  /* "_cunity.pxd":107
 *         x = -1.0
 *     else:
 *         ezr = expm1(zr)             # <<<<<<<<<<<<<<
 *         x = ezr*cos(zi) + cosm1(zi)
 *     # don't compute exp(zr) too, unless necessary
 */
  /*else*/ {
    __pyx_v_ezr = expm1(__pyx_v_zr);

    /* "_cunity.pxd":108
 *     else:
 *         ezr = expm1(zr)
 *         x = ezr*cos(zi) + cosm1(zi)             # <<<<<<<<<<<<<<
 *     # don't compute exp(zr) too, unless necessary
 *     if zr > -1.0:
 */
    __pyx_v_x = ((__pyx_v_ezr * cos(__pyx_v_zi)) + cosm1(__pyx_v_zi));
  }
  __pyx_L4:;

  /* "_cunity.pxd":110
 *         x = ezr*cos(zi) + cosm1(zi)
 *     # don't compute exp(zr) too, unless necessary
 *     if zr > -1.0:             # <<<<<<<<<<<<<<
 *         y = (ezr + 1.0)*sin(zi)
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_zr > -1.0) != 0);
  if (__pyx_t_1) {

    /* "_cunity.pxd":111
 *     # don't compute exp(zr) too, unless necessary
 *     if zr > -1.0:
 *         y = (ezr + 1.0)*sin(zi)             # <<<<<<<<<<<<<<
 *     else:
 *         y = exp(zr)*sin(zi)
 */
    __pyx_v_y = ((__pyx_v_ezr + 1.0) * sin(__pyx_v_zi));

    /* "_cunity.pxd":110
 *         x = ezr*cos(zi) + cosm1(zi)
 *     # don't compute exp(zr) too, unless necessary
 *     if zr > -1.0:             # <<<<<<<<<<<<<<
 *         y = (ezr + 1.0)*sin(zi)
 *     else:
 */
    goto __pyx_L5;
  }

  /* "_cunity.pxd":113
 *         y = (ezr + 1.0)*sin(zi)
 *     else:
 *         y = exp(zr)*sin(zi)             # <<<<<<<<<<<<<<
 * 
 *     return zpack(x, y)
 */
  /*else*/ {
    __pyx_v_y = (exp(__pyx_v_zr) * sin(__pyx_v_zi));
  }
  __pyx_L5:;

  /* "_cunity.pxd":115
 *         y = exp(zr)*sin(zi)
 * 
 *     return zpack(x, y)             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(__pyx_v_x, __pyx_v_y);
  goto __pyx_L0;

  /* "_cunity.pxd":93
 * # doesn't involve computing exp(z.real) and/or cos(z.imag) to higher
 * # precision.
 * cdef inline double complex cexpm1(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double zr, zi, ezr, x, y
 *     cdef np.npy_cdouble ret
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_exprel.pxd":7
 * from libc.math cimport expm1, fabs, log
 * 
 * cdef inline double exprel(double x) nogil:             # <<<<<<<<<<<<<<
 *     if fabs(x) < 1e-16:
 *         return 1.0
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_exprel_exprel(double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_exprel.pxd":8
 * 
 * cdef inline double exprel(double x) nogil:
 *     if fabs(x) < 1e-16:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif x > 717:  # near log(DBL_MAX)
 */
  __pyx_t_1 = ((fabs(__pyx_v_x) < 1e-16) != 0);
  if (__pyx_t_1) {

    /* "_exprel.pxd":9
 * cdef inline double exprel(double x) nogil:
 *     if fabs(x) < 1e-16:
 *         return 1.0             # <<<<<<<<<<<<<<
 *     elif x > 717:  # near log(DBL_MAX)
 *         return NPY_INFINITY
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "_exprel.pxd":8
 * 
 * cdef inline double exprel(double x) nogil:
 *     if fabs(x) < 1e-16:             # <<<<<<<<<<<<<<
 *         return 1.0
 *     elif x > 717:  # near log(DBL_MAX)
 */
  }

  /* "_exprel.pxd":10
 *     if fabs(x) < 1e-16:
 *         return 1.0
 *     elif x > 717:  # near log(DBL_MAX)             # <<<<<<<<<<<<<<
 *         return NPY_INFINITY
 *     else:
 */
  __pyx_t_1 = ((__pyx_v_x > 717.0) != 0);
  if (__pyx_t_1) {

    /* "_exprel.pxd":11
 *         return 1.0
 *     elif x > 717:  # near log(DBL_MAX)
 *         return NPY_INFINITY             # <<<<<<<<<<<<<<
 *     else:
 *         return expm1(x) / x
 */
    __pyx_r = NPY_INFINITY;
    goto __pyx_L0;

    /* "_exprel.pxd":10
 *     if fabs(x) < 1e-16:
 *         return 1.0
 *     elif x > 717:  # near log(DBL_MAX)             # <<<<<<<<<<<<<<
 *         return NPY_INFINITY
 *     else:
 */
  }

  /* "_exprel.pxd":13
 *         return NPY_INFINITY
 *     else:
 *         return expm1(x) / x             # <<<<<<<<<<<<<<
 * 
 */
  /*else*/ {
    __pyx_t_2 = expm1(__pyx_v_x);
    if (unlikely(__pyx_v_x == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(8, 13, __pyx_L1_error)
    }
    __pyx_r = (__pyx_t_2 / __pyx_v_x);
    goto __pyx_L0;
  }

  /* "_exprel.pxd":7
 * from libc.math cimport expm1, fabs, log
 * 
 * cdef inline double exprel(double x) nogil:             # <<<<<<<<<<<<<<
 *     if fabs(x) < 1e-16:
 *         return 1.0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._exprel.exprel", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_trig.pxd":16
 * 
 * 
 * cdef inline double complex csinpi(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute sin(pi*z) for complex arguments."""
 *     cdef:
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_5_trig_csinpi(__pyx_t_double_complex __pyx_v_z) {
  double __pyx_v_x;
  double __pyx_v_piy;
  double __pyx_v_abspiy;
  double __pyx_v_sinpix;
  double __pyx_v_cospix;
  double __pyx_v_exphpiy;
  double __pyx_v_coshfac;
  double __pyx_v_sinhfac;
  __pyx_t_double_complex __pyx_r;
  double __pyx_t_1;
  int __pyx_t_2;

  /* "_trig.pxd":19
 *     """Compute sin(pi*z) for complex arguments."""
 *     cdef:
 *         double x = z.real             # <<<<<<<<<<<<<<
 *         double piy = M_PI*z.imag
 *         double abspiy = fabs(piy)
 */
  __pyx_t_1 = __Pyx_CREAL(__pyx_v_z);
  __pyx_v_x = __pyx_t_1;

  /* "_trig.pxd":20
 *     cdef:
 *         double x = z.real
 *         double piy = M_PI*z.imag             # <<<<<<<<<<<<<<
 *         double abspiy = fabs(piy)
 *         double sinpix = sinpi(x)
 */
  __pyx_v_piy = (M_PI * __Pyx_CIMAG(__pyx_v_z));

  /* "_trig.pxd":21
 *         double x = z.real
 *         double piy = M_PI*z.imag
 *         double abspiy = fabs(piy)             # <<<<<<<<<<<<<<
 *         double sinpix = sinpi(x)
 *         double cospix = cospi(x)
 */
  __pyx_v_abspiy = fabs(__pyx_v_piy);

  /* "_trig.pxd":22
 *         double piy = M_PI*z.imag
 *         double abspiy = fabs(piy)
 *         double sinpix = sinpi(x)             # <<<<<<<<<<<<<<
 *         double cospix = cospi(x)
 *         double exphpiy, coshfac, sinhfac
 */
  __pyx_v_sinpix = __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_sinpi(__pyx_v_x);

  /* "_trig.pxd":23
 *         double abspiy = fabs(piy)
 *         double sinpix = sinpi(x)
 *         double cospix = cospi(x)             # <<<<<<<<<<<<<<
 *         double exphpiy, coshfac, sinhfac
 * 
 */
  __pyx_v_cospix = __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_cospi(__pyx_v_x);

  /* "_trig.pxd":26
 *         double exphpiy, coshfac, sinhfac
 * 
 *     if abspiy < 700:             # <<<<<<<<<<<<<<
 *         return zpack(sinpix*cosh(piy), cospix*sinh(piy))
 * 
 */
  __pyx_t_2 = ((__pyx_v_abspiy < 700.0) != 0);
  if (__pyx_t_2) {

    /* "_trig.pxd":27
 * 
 *     if abspiy < 700:
 *         return zpack(sinpix*cosh(piy), cospix*sinh(piy))             # <<<<<<<<<<<<<<
 * 
 *     # Have to be careful--sinh/cosh could overflow while cos/sin are
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack((__pyx_v_sinpix * cosh(__pyx_v_piy)), (__pyx_v_cospix * sinh(__pyx_v_piy)));
    goto __pyx_L0;

    /* "_trig.pxd":26
 *         double exphpiy, coshfac, sinhfac
 * 
 *     if abspiy < 700:             # <<<<<<<<<<<<<<
 *         return zpack(sinpix*cosh(piy), cospix*sinh(piy))
 * 
 */
  }

  /* "_trig.pxd":37
 *     # so we can compute exp(y/2), scale by the right factor of sin/cos
 *     # and then multiply by exp(y/2) to avoid overflow.
 *     exphpiy = exp(abspiy/2)             # <<<<<<<<<<<<<<
 *     if exphpiy == NPY_INFINITY:
 *         if sinpix == 0:
 */
  __pyx_v_exphpiy = exp((__pyx_v_abspiy / 2.0));

  /* "_trig.pxd":38
 *     # and then multiply by exp(y/2) to avoid overflow.
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:             # <<<<<<<<<<<<<<
 *         if sinpix == 0:
 *             # Preserve the sign of zero
 */
  __pyx_t_2 = ((__pyx_v_exphpiy == NPY_INFINITY) != 0);
  if (__pyx_t_2) {

    /* "_trig.pxd":39
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:
 *         if sinpix == 0:             # <<<<<<<<<<<<<<
 *             # Preserve the sign of zero
 *             coshfac = npy_copysign(0.0, sinpix)
 */
    __pyx_t_2 = ((__pyx_v_sinpix == 0.0) != 0);
    if (__pyx_t_2) {

      /* "_trig.pxd":41
 *         if sinpix == 0:
 *             # Preserve the sign of zero
 *             coshfac = npy_copysign(0.0, sinpix)             # <<<<<<<<<<<<<<
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, sinpix)
 */
      __pyx_v_coshfac = npy_copysign(0.0, __pyx_v_sinpix);

      /* "_trig.pxd":39
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:
 *         if sinpix == 0:             # <<<<<<<<<<<<<<
 *             # Preserve the sign of zero
 *             coshfac = npy_copysign(0.0, sinpix)
 */
      goto __pyx_L5;
    }

    /* "_trig.pxd":43
 *             coshfac = npy_copysign(0.0, sinpix)
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, sinpix)             # <<<<<<<<<<<<<<
 *         if cospix == 0:
 *             sinhfac = npy_copysign(0.0, cospix)
 */
    /*else*/ {
      __pyx_v_coshfac = npy_copysign(NPY_INFINITY, __pyx_v_sinpix);
    }
    __pyx_L5:;

    /* "_trig.pxd":44
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, sinpix)
 *         if cospix == 0:             # <<<<<<<<<<<<<<
 *             sinhfac = npy_copysign(0.0, cospix)
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cospix == 0.0) != 0);
    if (__pyx_t_2) {

      /* "_trig.pxd":45
 *             coshfac = npy_copysign(NPY_INFINITY, sinpix)
 *         if cospix == 0:
 *             sinhfac = npy_copysign(0.0, cospix)             # <<<<<<<<<<<<<<
 *         else:
 *             sinhfac = npy_copysign(NPY_INFINITY, cospix)
 */
      __pyx_v_sinhfac = npy_copysign(0.0, __pyx_v_cospix);

      /* "_trig.pxd":44
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, sinpix)
 *         if cospix == 0:             # <<<<<<<<<<<<<<
 *             sinhfac = npy_copysign(0.0, cospix)
 *         else:
 */
      goto __pyx_L6;
    }

    /* "_trig.pxd":47
 *             sinhfac = npy_copysign(0.0, cospix)
 *         else:
 *             sinhfac = npy_copysign(NPY_INFINITY, cospix)             # <<<<<<<<<<<<<<
 *         return zpack(coshfac, sinhfac)
 * 
 */
    /*else*/ {
      __pyx_v_sinhfac = npy_copysign(NPY_INFINITY, __pyx_v_cospix);
    }
    __pyx_L6:;

    /* "_trig.pxd":48
 *         else:
 *             sinhfac = npy_copysign(NPY_INFINITY, cospix)
 *         return zpack(coshfac, sinhfac)             # <<<<<<<<<<<<<<
 * 
 *     coshfac = 0.5*sinpix*exphpiy
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(__pyx_v_coshfac, __pyx_v_sinhfac);
    goto __pyx_L0;

    /* "_trig.pxd":38
 *     # and then multiply by exp(y/2) to avoid overflow.
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:             # <<<<<<<<<<<<<<
 *         if sinpix == 0:
 *             # Preserve the sign of zero
 */
  }

  /* "_trig.pxd":50
 *         return zpack(coshfac, sinhfac)
 * 
 *     coshfac = 0.5*sinpix*exphpiy             # <<<<<<<<<<<<<<
 *     sinhfac = 0.5*cospix*exphpiy
 *     return zpack(coshfac*exphpiy, sinhfac*exphpiy)
 */
  __pyx_v_coshfac = ((0.5 * __pyx_v_sinpix) * __pyx_v_exphpiy);

  /* "_trig.pxd":51
 * 
 *     coshfac = 0.5*sinpix*exphpiy
 *     sinhfac = 0.5*cospix*exphpiy             # <<<<<<<<<<<<<<
 *     return zpack(coshfac*exphpiy, sinhfac*exphpiy)
 * 
 */
  __pyx_v_sinhfac = ((0.5 * __pyx_v_cospix) * __pyx_v_exphpiy);

  /* "_trig.pxd":52
 *     coshfac = 0.5*sinpix*exphpiy
 *     sinhfac = 0.5*cospix*exphpiy
 *     return zpack(coshfac*exphpiy, sinhfac*exphpiy)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack((__pyx_v_coshfac * __pyx_v_exphpiy), (__pyx_v_sinhfac * __pyx_v_exphpiy));
  goto __pyx_L0;

  /* "_trig.pxd":16
 * 
 * 
 * cdef inline double complex csinpi(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute sin(pi*z) for complex arguments."""
 *     cdef:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_trig.pxd":55
 * 
 * 
 * cdef inline double complex ccospi(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute cos(pi*z) for complex arguments."""
 *     cdef:
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_5_trig_ccospi(__pyx_t_double_complex __pyx_v_z) {
  double __pyx_v_x;
  double __pyx_v_piy;
  double __pyx_v_abspiy;
  double __pyx_v_sinpix;
  double __pyx_v_cospix;
  double __pyx_v_exphpiy;
  double __pyx_v_coshfac;
  double __pyx_v_sinhfac;
  __pyx_t_double_complex __pyx_r;
  double __pyx_t_1;
  int __pyx_t_2;

  /* "_trig.pxd":58
 *     """Compute cos(pi*z) for complex arguments."""
 *     cdef:
 *         double x = z.real             # <<<<<<<<<<<<<<
 *         double piy = M_PI*z.imag
 *         double abspiy = fabs(piy)
 */
  __pyx_t_1 = __Pyx_CREAL(__pyx_v_z);
  __pyx_v_x = __pyx_t_1;

  /* "_trig.pxd":59
 *     cdef:
 *         double x = z.real
 *         double piy = M_PI*z.imag             # <<<<<<<<<<<<<<
 *         double abspiy = fabs(piy)
 *         double sinpix = sinpi(x)
 */
  __pyx_v_piy = (M_PI * __Pyx_CIMAG(__pyx_v_z));

  /* "_trig.pxd":60
 *         double x = z.real
 *         double piy = M_PI*z.imag
 *         double abspiy = fabs(piy)             # <<<<<<<<<<<<<<
 *         double sinpix = sinpi(x)
 *         double cospix = cospi(x)
 */
  __pyx_v_abspiy = fabs(__pyx_v_piy);

  /* "_trig.pxd":61
 *         double piy = M_PI*z.imag
 *         double abspiy = fabs(piy)
 *         double sinpix = sinpi(x)             # <<<<<<<<<<<<<<
 *         double cospix = cospi(x)
 *         double exphpiy, coshfac, sinhfac
 */
  __pyx_v_sinpix = __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_sinpi(__pyx_v_x);

  /* "_trig.pxd":62
 *         double abspiy = fabs(piy)
 *         double sinpix = sinpi(x)
 *         double cospix = cospi(x)             # <<<<<<<<<<<<<<
 *         double exphpiy, coshfac, sinhfac
 * 
 */
  __pyx_v_cospix = __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_cospi(__pyx_v_x);

  /* "_trig.pxd":65
 *         double exphpiy, coshfac, sinhfac
 * 
 *     if abspiy < 700:             # <<<<<<<<<<<<<<
 *         return zpack(cospix*cosh(piy), -sinpix*sinh(piy))
 * 
 */
  __pyx_t_2 = ((__pyx_v_abspiy < 700.0) != 0);
  if (__pyx_t_2) {

    /* "_trig.pxd":66
 * 
 *     if abspiy < 700:
 *         return zpack(cospix*cosh(piy), -sinpix*sinh(piy))             # <<<<<<<<<<<<<<
 * 
 *     # See csinpi(z) for an idea of what's going on here
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack((__pyx_v_cospix * cosh(__pyx_v_piy)), ((-__pyx_v_sinpix) * sinh(__pyx_v_piy)));
    goto __pyx_L0;

    /* "_trig.pxd":65
 *         double exphpiy, coshfac, sinhfac
 * 
 *     if abspiy < 700:             # <<<<<<<<<<<<<<
 *         return zpack(cospix*cosh(piy), -sinpix*sinh(piy))
 * 
 */
  }

  /* "_trig.pxd":69
 * 
 *     # See csinpi(z) for an idea of what's going on here
 *     exphpiy = exp(abspiy/2)             # <<<<<<<<<<<<<<
 *     if exphpiy == NPY_INFINITY:
 *         if sinpix == 0:
 */
  __pyx_v_exphpiy = exp((__pyx_v_abspiy / 2.0));

  /* "_trig.pxd":70
 *     # See csinpi(z) for an idea of what's going on here
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:             # <<<<<<<<<<<<<<
 *         if sinpix == 0:
 *             coshfac = npy_copysign(0.0, cospix)
 */
  __pyx_t_2 = ((__pyx_v_exphpiy == NPY_INFINITY) != 0);
  if (__pyx_t_2) {

    /* "_trig.pxd":71
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:
 *         if sinpix == 0:             # <<<<<<<<<<<<<<
 *             coshfac = npy_copysign(0.0, cospix)
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_sinpix == 0.0) != 0);
    if (__pyx_t_2) {

      /* "_trig.pxd":72
 *     if exphpiy == NPY_INFINITY:
 *         if sinpix == 0:
 *             coshfac = npy_copysign(0.0, cospix)             # <<<<<<<<<<<<<<
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, cospix)
 */
      __pyx_v_coshfac = npy_copysign(0.0, __pyx_v_cospix);

      /* "_trig.pxd":71
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:
 *         if sinpix == 0:             # <<<<<<<<<<<<<<
 *             coshfac = npy_copysign(0.0, cospix)
 *         else:
 */
      goto __pyx_L5;
    }

    /* "_trig.pxd":74
 *             coshfac = npy_copysign(0.0, cospix)
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, cospix)             # <<<<<<<<<<<<<<
 *         if cospix == 0:
 *             sinhfac = npy_copysign(0.0, sinpix)
 */
    /*else*/ {
      __pyx_v_coshfac = npy_copysign(NPY_INFINITY, __pyx_v_cospix);
    }
    __pyx_L5:;

    /* "_trig.pxd":75
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, cospix)
 *         if cospix == 0:             # <<<<<<<<<<<<<<
 *             sinhfac = npy_copysign(0.0, sinpix)
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_cospix == 0.0) != 0);
    if (__pyx_t_2) {

      /* "_trig.pxd":76
 *             coshfac = npy_copysign(NPY_INFINITY, cospix)
 *         if cospix == 0:
 *             sinhfac = npy_copysign(0.0, sinpix)             # <<<<<<<<<<<<<<
 *         else:
 *             sinhfac = npy_copysign(NPY_INFINITY, sinpix)
 */
      __pyx_v_sinhfac = npy_copysign(0.0, __pyx_v_sinpix);

      /* "_trig.pxd":75
 *         else:
 *             coshfac = npy_copysign(NPY_INFINITY, cospix)
 *         if cospix == 0:             # <<<<<<<<<<<<<<
 *             sinhfac = npy_copysign(0.0, sinpix)
 *         else:
 */
      goto __pyx_L6;
    }

    /* "_trig.pxd":78
 *             sinhfac = npy_copysign(0.0, sinpix)
 *         else:
 *             sinhfac = npy_copysign(NPY_INFINITY, sinpix)             # <<<<<<<<<<<<<<
 *         return zpack(coshfac, sinhfac)
 * 
 */
    /*else*/ {
      __pyx_v_sinhfac = npy_copysign(NPY_INFINITY, __pyx_v_sinpix);
    }
    __pyx_L6:;

    /* "_trig.pxd":79
 *         else:
 *             sinhfac = npy_copysign(NPY_INFINITY, sinpix)
 *         return zpack(coshfac, sinhfac)             # <<<<<<<<<<<<<<
 * 
 *     coshfac = 0.5*cospix*exphpiy
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(__pyx_v_coshfac, __pyx_v_sinhfac);
    goto __pyx_L0;

    /* "_trig.pxd":70
 *     # See csinpi(z) for an idea of what's going on here
 *     exphpiy = exp(abspiy/2)
 *     if exphpiy == NPY_INFINITY:             # <<<<<<<<<<<<<<
 *         if sinpix == 0:
 *             coshfac = npy_copysign(0.0, cospix)
 */
  }

  /* "_trig.pxd":81
 *         return zpack(coshfac, sinhfac)
 * 
 *     coshfac = 0.5*cospix*exphpiy             # <<<<<<<<<<<<<<
 *     sinhfac = 0.5*sinpix*exphpiy
 *     return zpack(coshfac*exphpiy, sinhfac*exphpiy)
 */
  __pyx_v_coshfac = ((0.5 * __pyx_v_cospix) * __pyx_v_exphpiy);

  /* "_trig.pxd":82
 * 
 *     coshfac = 0.5*cospix*exphpiy
 *     sinhfac = 0.5*sinpix*exphpiy             # <<<<<<<<<<<<<<
 *     return zpack(coshfac*exphpiy, sinhfac*exphpiy)
 * 
 */
  __pyx_v_sinhfac = ((0.5 * __pyx_v_sinpix) * __pyx_v_exphpiy);

  /* "_trig.pxd":83
 *     coshfac = 0.5*cospix*exphpiy
 *     sinhfac = 0.5*sinpix*exphpiy
 *     return zpack(coshfac*exphpiy, sinhfac*exphpiy)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack((__pyx_v_coshfac * __pyx_v_exphpiy), (__pyx_v_sinhfac * __pyx_v_exphpiy));
  goto __pyx_L0;

  /* "_trig.pxd":55
 * 
 * 
 * cdef inline double complex ccospi(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute cos(pi*z) for complex arguments."""
 *     cdef:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_trig.pxd":86
 * 
 * 
 * cdef inline number_t sinpi(number_t z) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double:
 *         return dsinpi(z)
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_sinpi(double __pyx_v_z) {
  double __pyx_r;

  /* "_trig.pxd":88
 * cdef inline number_t sinpi(number_t z) nogil:
 *     if number_t is double:
 *         return dsinpi(z)             # <<<<<<<<<<<<<<
 *     else:
 *         return csinpi(z)
 */
  __pyx_r = sinpi(__pyx_v_z);
  goto __pyx_L0;

  /* "_trig.pxd":86
 * 
 * 
 * cdef inline number_t sinpi(number_t z) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double:
 *         return dsinpi(z)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_5_trig_sinpi(__pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_r;

  /* "_trig.pxd":90
 *         return dsinpi(z)
 *     else:
 *         return csinpi(z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_5_trig_csinpi(__pyx_v_z);
  goto __pyx_L0;

  /* "_trig.pxd":86
 * 
 * 
 * cdef inline number_t sinpi(number_t z) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double:
 *         return dsinpi(z)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_trig.pxd":93
 * 
 * 
 * cdef inline number_t cospi(number_t z) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double:
 *         return dcospi(z)
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_5_trig_cospi(double __pyx_v_z) {
  double __pyx_r;

  /* "_trig.pxd":95
 * cdef inline number_t cospi(number_t z) nogil:
 *     if number_t is double:
 *         return dcospi(z)             # <<<<<<<<<<<<<<
 *     else:
 *         return ccospi(z)
 */
  __pyx_r = cospi(__pyx_v_z);
  goto __pyx_L0;

  /* "_trig.pxd":93
 * 
 * 
 * cdef inline number_t cospi(number_t z) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double:
 *         return dcospi(z)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_5_trig_cospi(__pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_r;

  /* "_trig.pxd":97
 *         return dcospi(z)
 *     else:
 *         return ccospi(z)             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_f_5scipy_7special_5_trig_ccospi(__pyx_v_z);
  goto __pyx_L0;

  /* "_trig.pxd":93
 * 
 * 
 * cdef inline number_t cospi(number_t z) nogil:             # <<<<<<<<<<<<<<
 *     if number_t is double:
 *         return dcospi(z)
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_evalpoly.pxd":21
 * 
 * 
 * cdef inline double complex cevalpoly(double *coeffs, int degree,             # <<<<<<<<<<<<<<
 *                                      double complex z) nogil:
 *     """Evaluate a polynomial with real coefficients at a complex point.
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_evalpoly_cevalpoly(double *__pyx_v_coeffs, int __pyx_v_degree, __pyx_t_double_complex __pyx_v_z) {
  int __pyx_v_j;
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_v_r;
  double __pyx_v_s;
  double __pyx_v_tmp;
  __pyx_t_double_complex __pyx_r;
  long __pyx_t_1;
  long __pyx_t_2;
  int __pyx_t_3;

  /* "_evalpoly.pxd":31
 *     cdef:
 *         int j
 *         double a = coeffs[0]             # <<<<<<<<<<<<<<
 *         double b = coeffs[1]
 *         double r = 2*z.real
 */
  __pyx_v_a = (__pyx_v_coeffs[0]);

  /* "_evalpoly.pxd":32
 *         int j
 *         double a = coeffs[0]
 *         double b = coeffs[1]             # <<<<<<<<<<<<<<
 *         double r = 2*z.real
 *         double s = z.real*z.real + z.imag*z.imag
 */
  __pyx_v_b = (__pyx_v_coeffs[1]);

  /* "_evalpoly.pxd":33
 *         double a = coeffs[0]
 *         double b = coeffs[1]
 *         double r = 2*z.real             # <<<<<<<<<<<<<<
 *         double s = z.real*z.real + z.imag*z.imag
 *         double tmp
 */
  __pyx_v_r = (2.0 * __Pyx_CREAL(__pyx_v_z));

  /* "_evalpoly.pxd":34
 *         double b = coeffs[1]
 *         double r = 2*z.real
 *         double s = z.real*z.real + z.imag*z.imag             # <<<<<<<<<<<<<<
 *         double tmp
 * 
 */
  __pyx_v_s = ((__Pyx_CREAL(__pyx_v_z) * __Pyx_CREAL(__pyx_v_z)) + (__Pyx_CIMAG(__pyx_v_z) * __Pyx_CIMAG(__pyx_v_z)));

  /* "_evalpoly.pxd":37
 *         double tmp
 * 
 *     for j in range(2, degree + 1):             # <<<<<<<<<<<<<<
 *         tmp = b
 *         b = sc_fma(-s, a, coeffs[j])
 */
  __pyx_t_1 = (__pyx_v_degree + 1);
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 2; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_j = __pyx_t_3;

    /* "_evalpoly.pxd":38
 * 
 *     for j in range(2, degree + 1):
 *         tmp = b             # <<<<<<<<<<<<<<
 *         b = sc_fma(-s, a, coeffs[j])
 *         a = sc_fma(r, a, tmp)
 */
    __pyx_v_tmp = __pyx_v_b;

    /* "_evalpoly.pxd":39
 *     for j in range(2, degree + 1):
 *         tmp = b
 *         b = sc_fma(-s, a, coeffs[j])             # <<<<<<<<<<<<<<
 *         a = sc_fma(r, a, tmp)
 *     return z*a + b
 */
    __pyx_v_b = sc_fma((-__pyx_v_s), __pyx_v_a, (__pyx_v_coeffs[__pyx_v_j]));

    /* "_evalpoly.pxd":40
 *         tmp = b
 *         b = sc_fma(-s, a, coeffs[j])
 *         a = sc_fma(r, a, tmp)             # <<<<<<<<<<<<<<
 *     return z*a + b
 */
    __pyx_v_a = sc_fma(__pyx_v_r, __pyx_v_a, __pyx_v_tmp);
  }

  /* "_evalpoly.pxd":41
 *         b = sc_fma(-s, a, coeffs[j])
 *         a = sc_fma(r, a, tmp)
 *     return z*a + b             # <<<<<<<<<<<<<<
 */
  __pyx_r = __Pyx_c_sum_double(__Pyx_c_prod_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_a, 0)), __pyx_t_double_complex_from_parts(__pyx_v_b, 0));
  goto __pyx_L0;

  /* "_evalpoly.pxd":21
 * 
 * 
 * cdef inline double complex cevalpoly(double *coeffs, int degree,             # <<<<<<<<<<<<<<
 *                                      double complex z) nogil:
 *     """Evaluate a polynomial with real coefficients at a complex point.
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_loggamma.pxd":42
 * 
 * 
 * cdef inline double loggamma_real(double x) nogil:             # <<<<<<<<<<<<<<
 *     if x < 0.0:
 *         return nan
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_9_loggamma_loggamma_real(double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_loggamma.pxd":43
 * 
 * cdef inline double loggamma_real(double x) nogil:
 *     if x < 0.0:             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  __pyx_t_1 = ((__pyx_v_x < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_loggamma.pxd":44
 * cdef inline double loggamma_real(double x) nogil:
 *     if x < 0.0:
 *         return nan             # <<<<<<<<<<<<<<
 * 
 *     return lgam(x)
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_loggamma.pxd":43
 * 
 * cdef inline double loggamma_real(double x) nogil:
 *     if x < 0.0:             # <<<<<<<<<<<<<<
 *         return nan
 * 
 */
  }

  /* "_loggamma.pxd":46
 *         return nan
 * 
 *     return lgam(x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = lgam(__pyx_v_x);
  goto __pyx_L0;

  /* "_loggamma.pxd":42
 * 
 * 
 * cdef inline double loggamma_real(double x) nogil:             # <<<<<<<<<<<<<<
 *     if x < 0.0:
 *         return nan
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_loggamma.pxd":50
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute the principal branch of log-Gamma."""
 *     cdef double tmp
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma(__pyx_t_double_complex __pyx_v_z) {
  double __pyx_v_tmp;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_loggamma.pxd":54
 *     cdef double tmp
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return zpack(nan, nan)
 *     elif z.real <= 0 and z == floor(z.real):
 */
  __pyx_t_1 = (__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_z) != 0);
  if (__pyx_t_1) {

    /* "_loggamma.pxd":55
 * 
 *     if zisnan(z):
 *         return zpack(nan, nan)             # <<<<<<<<<<<<<<
 *     elif z.real <= 0 and z == floor(z.real):
 *         sf_error.error("loggamma", sf_error.SINGULAR, NULL)
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(NPY_NAN, NPY_NAN);
    goto __pyx_L0;

    /* "_loggamma.pxd":54
 *     cdef double tmp
 * 
 *     if zisnan(z):             # <<<<<<<<<<<<<<
 *         return zpack(nan, nan)
 *     elif z.real <= 0 and z == floor(z.real):
 */
  }

  /* "_loggamma.pxd":56
 *     if zisnan(z):
 *         return zpack(nan, nan)
 *     elif z.real <= 0 and z == floor(z.real):             # <<<<<<<<<<<<<<
 *         sf_error.error("loggamma", sf_error.SINGULAR, NULL)
 *         return zpack(nan, nan)
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) <= 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(floor(__Pyx_CREAL(__pyx_v_z)), 0))) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_loggamma.pxd":57
 *         return zpack(nan, nan)
 *     elif z.real <= 0 and z == floor(z.real):
 *         sf_error.error("loggamma", sf_error.SINGULAR, NULL)             # <<<<<<<<<<<<<<
 *         return zpack(nan, nan)
 *     elif z.real > SMALLX or fabs(z.imag) > SMALLY:
 */
    sf_error(((char *)"loggamma"), SF_ERROR_SINGULAR, NULL);

    /* "_loggamma.pxd":58
 *     elif z.real <= 0 and z == floor(z.real):
 *         sf_error.error("loggamma", sf_error.SINGULAR, NULL)
 *         return zpack(nan, nan)             # <<<<<<<<<<<<<<
 *     elif z.real > SMALLX or fabs(z.imag) > SMALLY:
 *         return loggamma_stirling(z)
 */
    __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_zpack(NPY_NAN, NPY_NAN);
    goto __pyx_L0;

    /* "_loggamma.pxd":56
 *     if zisnan(z):
 *         return zpack(nan, nan)
 *     elif z.real <= 0 and z == floor(z.real):             # <<<<<<<<<<<<<<
 *         sf_error.error("loggamma", sf_error.SINGULAR, NULL)
 *         return zpack(nan, nan)
 */
  }

  /* "_loggamma.pxd":59
 *         sf_error.error("loggamma", sf_error.SINGULAR, NULL)
 *         return zpack(nan, nan)
 *     elif z.real > SMALLX or fabs(z.imag) > SMALLY:             # <<<<<<<<<<<<<<
 *         return loggamma_stirling(z)
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) > 7.0) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_2 = ((fabs(__Pyx_CIMAG(__pyx_v_z)) > 7.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_loggamma.pxd":60
 *         return zpack(nan, nan)
 *     elif z.real > SMALLX or fabs(z.imag) > SMALLY:
 *         return loggamma_stirling(z)             # <<<<<<<<<<<<<<
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:
 *         return loggamma_taylor(z)
 */
    __pyx_r = __pyx_f_5scipy_7special_9_loggamma_loggamma_stirling(__pyx_v_z);
    goto __pyx_L0;

    /* "_loggamma.pxd":59
 *         sf_error.error("loggamma", sf_error.SINGULAR, NULL)
 *         return zpack(nan, nan)
 *     elif z.real > SMALLX or fabs(z.imag) > SMALLY:             # <<<<<<<<<<<<<<
 *         return loggamma_stirling(z)
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:
 */
  }

  /* "_loggamma.pxd":61
 *     elif z.real > SMALLX or fabs(z.imag) > SMALLY:
 *         return loggamma_stirling(z)
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:             # <<<<<<<<<<<<<<
 *         return loggamma_taylor(z)
 *     elif zabs(z - 2) <= TAYLOR_RADIUS:
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0))) <= 0.2) != 0);
  if (__pyx_t_1) {

    /* "_loggamma.pxd":62
 *         return loggamma_stirling(z)
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:
 *         return loggamma_taylor(z)             # <<<<<<<<<<<<<<
 *     elif zabs(z - 2) <= TAYLOR_RADIUS:
 *         # Recurrence relation and the Taylor series around 1
 */
    __pyx_r = __pyx_f_5scipy_7special_9_loggamma_loggamma_taylor(__pyx_v_z);
    goto __pyx_L0;

    /* "_loggamma.pxd":61
 *     elif z.real > SMALLX or fabs(z.imag) > SMALLY:
 *         return loggamma_stirling(z)
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:             # <<<<<<<<<<<<<<
 *         return loggamma_taylor(z)
 *     elif zabs(z - 2) <= TAYLOR_RADIUS:
 */
  }

  /* "_loggamma.pxd":63
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:
 *         return loggamma_taylor(z)
 *     elif zabs(z - 2) <= TAYLOR_RADIUS:             # <<<<<<<<<<<<<<
 *         # Recurrence relation and the Taylor series around 1
 *         return zlog1(z - 1) + loggamma_taylor(z - 1)
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(2, 0))) <= 0.2) != 0);
  if (__pyx_t_1) {

    /* "_loggamma.pxd":65
 *     elif zabs(z - 2) <= TAYLOR_RADIUS:
 *         # Recurrence relation and the Taylor series around 1
 *         return zlog1(z - 1) + loggamma_taylor(z - 1)             # <<<<<<<<<<<<<<
 *     elif z.real < 0.1:
 *         # Reflection formula; see Proposition 3.1 in [1]
 */
    __pyx_r = __Pyx_c_sum_double(__pyx_f_5scipy_7special_13_complexstuff_zlog1(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0))), __pyx_f_5scipy_7special_9_loggamma_loggamma_taylor(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0))));
    goto __pyx_L0;

    /* "_loggamma.pxd":63
 *     elif zabs(z - 1) <= TAYLOR_RADIUS:
 *         return loggamma_taylor(z)
 *     elif zabs(z - 2) <= TAYLOR_RADIUS:             # <<<<<<<<<<<<<<
 *         # Recurrence relation and the Taylor series around 1
 *         return zlog1(z - 1) + loggamma_taylor(z - 1)
 */
  }

  /* "_loggamma.pxd":66
 *         # Recurrence relation and the Taylor series around 1
 *         return zlog1(z - 1) + loggamma_taylor(z - 1)
 *     elif z.real < 0.1:             # <<<<<<<<<<<<<<
 *         # Reflection formula; see Proposition 3.1 in [1]
 *         tmp = npy_copysign(TWOPI, z.imag)*floor(0.5*z.real + 0.25)
 */
  __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) < 0.1) != 0);
  if (__pyx_t_1) {

    /* "_loggamma.pxd":68
 *     elif z.real < 0.1:
 *         # Reflection formula; see Proposition 3.1 in [1]
 *         tmp = npy_copysign(TWOPI, z.imag)*floor(0.5*z.real + 0.25)             # <<<<<<<<<<<<<<
 *         return zpack(LOGPI, tmp) - zlog(sinpi(z)) - loggamma(1 - z)
 *     elif npy_signbit(z.imag) == 0:
 */
    __pyx_v_tmp = (npy_copysign(6.283185307179586, __Pyx_CIMAG(__pyx_v_z)) * floor(((0.5 * __Pyx_CREAL(__pyx_v_z)) + 0.25)));

    /* "_loggamma.pxd":69
 *         # Reflection formula; see Proposition 3.1 in [1]
 *         tmp = npy_copysign(TWOPI, z.imag)*floor(0.5*z.real + 0.25)
 *         return zpack(LOGPI, tmp) - zlog(sinpi(z)) - loggamma(1 - z)             # <<<<<<<<<<<<<<
 *     elif npy_signbit(z.imag) == 0:
 *         # z.imag >= 0 but is not -0.0
 */
    __pyx_r = __Pyx_c_diff_double(__Pyx_c_diff_double(__pyx_f_5scipy_7special_13_complexstuff_zpack(1.1447298858494002, __pyx_v_tmp), __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_fuse_1__pyx_f_5scipy_7special_5_trig_sinpi(__pyx_v_z))), __pyx_f_5scipy_7special_9_loggamma_loggamma(__Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_z)));
    goto __pyx_L0;

    /* "_loggamma.pxd":66
 *         # Recurrence relation and the Taylor series around 1
 *         return zlog1(z - 1) + loggamma_taylor(z - 1)
 *     elif z.real < 0.1:             # <<<<<<<<<<<<<<
 *         # Reflection formula; see Proposition 3.1 in [1]
 *         tmp = npy_copysign(TWOPI, z.imag)*floor(0.5*z.real + 0.25)
 */
  }

  /* "_loggamma.pxd":70
 *         tmp = npy_copysign(TWOPI, z.imag)*floor(0.5*z.real + 0.25)
 *         return zpack(LOGPI, tmp) - zlog(sinpi(z)) - loggamma(1 - z)
 *     elif npy_signbit(z.imag) == 0:             # <<<<<<<<<<<<<<
 *         # z.imag >= 0 but is not -0.0
 *         return loggamma_recurrence(z)
 */
  __pyx_t_1 = ((npy_signbit(__Pyx_CIMAG(__pyx_v_z)) == 0) != 0);
  if (__pyx_t_1) {

    /* "_loggamma.pxd":72
 *     elif npy_signbit(z.imag) == 0:
 *         # z.imag >= 0 but is not -0.0
 *         return loggamma_recurrence(z)             # <<<<<<<<<<<<<<
 *     else:
 *         return loggamma_recurrence(z.conjugate()).conjugate()
 */
    __pyx_r = __pyx_f_5scipy_7special_9_loggamma_loggamma_recurrence(__pyx_v_z);
    goto __pyx_L0;

    /* "_loggamma.pxd":70
 *         tmp = npy_copysign(TWOPI, z.imag)*floor(0.5*z.real + 0.25)
 *         return zpack(LOGPI, tmp) - zlog(sinpi(z)) - loggamma(1 - z)
 *     elif npy_signbit(z.imag) == 0:             # <<<<<<<<<<<<<<
 *         # z.imag >= 0 but is not -0.0
 *         return loggamma_recurrence(z)
 */
  }

  /* "_loggamma.pxd":74
 *         return loggamma_recurrence(z)
 *     else:
 *         return loggamma_recurrence(z.conjugate()).conjugate()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_r = __Pyx_c_conj_double(__pyx_f_5scipy_7special_9_loggamma_loggamma_recurrence(__Pyx_c_conj_double(__pyx_v_z)));
    goto __pyx_L0;
  }

  /* "_loggamma.pxd":50
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute the principal branch of log-Gamma."""
 *     cdef double tmp
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_loggamma.pxd":78
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma_recurrence(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Backward recurrence relation.
 * 
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma_recurrence(__pyx_t_double_complex __pyx_v_z) {
  int __pyx_v_signflips;
  int __pyx_v_sb;
  int __pyx_v_nsb;
  __pyx_t_double_complex __pyx_v_shiftprod;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;
  int __pyx_t_3;

  /* "_loggamma.pxd":85
 *     """
 *     cdef:
 *         int signflips = 0             # <<<<<<<<<<<<<<
 *         int sb = 0
 *         int nsb
 */
  __pyx_v_signflips = 0;

  /* "_loggamma.pxd":86
 *     cdef:
 *         int signflips = 0
 *         int sb = 0             # <<<<<<<<<<<<<<
 *         int nsb
 *         double complex shiftprod = z
 */
  __pyx_v_sb = 0;

  /* "_loggamma.pxd":88
 *         int sb = 0
 *         int nsb
 *         double complex shiftprod = z             # <<<<<<<<<<<<<<
 * 
 *     z.real += 1
 */
  __pyx_v_shiftprod = __pyx_v_z;

  /* "_loggamma.pxd":90
 *         double complex shiftprod = z
 * 
 *     z.real += 1             # <<<<<<<<<<<<<<
 *     while z.real <= SMALLX:
 *         shiftprod *= z
 */
  __Pyx_SET_CREAL(__pyx_v_z, (__Pyx_CREAL(__pyx_v_z) + 1.0));

  /* "_loggamma.pxd":91
 * 
 *     z.real += 1
 *     while z.real <= SMALLX:             # <<<<<<<<<<<<<<
 *         shiftprod *= z
 *         nsb = npy_signbit(shiftprod.imag)
 */
  while (1) {
    __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) <= 7.0) != 0);
    if (!__pyx_t_1) break;

    /* "_loggamma.pxd":92
 *     z.real += 1
 *     while z.real <= SMALLX:
 *         shiftprod *= z             # <<<<<<<<<<<<<<
 *         nsb = npy_signbit(shiftprod.imag)
 *         signflips += 1 if nsb != 0 and sb == 0 else 0
 */
    __pyx_v_shiftprod = __Pyx_c_prod_double(__pyx_v_shiftprod, __pyx_v_z);

    /* "_loggamma.pxd":93
 *     while z.real <= SMALLX:
 *         shiftprod *= z
 *         nsb = npy_signbit(shiftprod.imag)             # <<<<<<<<<<<<<<
 *         signflips += 1 if nsb != 0 and sb == 0 else 0
 *         sb = nsb
 */
    __pyx_v_nsb = npy_signbit(__Pyx_CIMAG(__pyx_v_shiftprod));

    /* "_loggamma.pxd":94
 *         shiftprod *= z
 *         nsb = npy_signbit(shiftprod.imag)
 *         signflips += 1 if nsb != 0 and sb == 0 else 0             # <<<<<<<<<<<<<<
 *         sb = nsb
 *         z.real += 1
 */
    __pyx_t_3 = ((__pyx_v_nsb != 0) != 0);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L5_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_sb == 0) != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_1) {
      __pyx_t_2 = 1;
    } else {
      __pyx_t_2 = 0;
    }
    __pyx_v_signflips = (__pyx_v_signflips + __pyx_t_2);

    /* "_loggamma.pxd":95
 *         nsb = npy_signbit(shiftprod.imag)
 *         signflips += 1 if nsb != 0 and sb == 0 else 0
 *         sb = nsb             # <<<<<<<<<<<<<<
 *         z.real += 1
 *     return loggamma_stirling(z) - zlog(shiftprod) - signflips*TWOPI*1J
 */
    __pyx_v_sb = __pyx_v_nsb;

    /* "_loggamma.pxd":96
 *         signflips += 1 if nsb != 0 and sb == 0 else 0
 *         sb = nsb
 *         z.real += 1             # <<<<<<<<<<<<<<
 *     return loggamma_stirling(z) - zlog(shiftprod) - signflips*TWOPI*1J
 * 
 */
    __Pyx_SET_CREAL(__pyx_v_z, (__Pyx_CREAL(__pyx_v_z) + 1.0));
  }

  /* "_loggamma.pxd":97
 *         sb = nsb
 *         z.real += 1
 *     return loggamma_stirling(z) - zlog(shiftprod) - signflips*TWOPI*1J             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_c_diff_double(__Pyx_c_diff_double(__pyx_f_5scipy_7special_9_loggamma_loggamma_stirling(__pyx_v_z), __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_shiftprod)), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts((__pyx_v_signflips * 6.283185307179586), 0), __pyx_t_double_complex_from_parts(0, 1.0)));
  goto __pyx_L0;

  /* "_loggamma.pxd":78
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma_recurrence(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Backward recurrence relation.
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_loggamma.pxd":101
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma_stirling(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Stirling series for log-Gamma.
 * 
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma_stirling(__pyx_t_double_complex __pyx_v_z) {
  double *__pyx_v_coeffs;
  __pyx_t_double_complex __pyx_v_rz;
  __pyx_t_double_complex __pyx_v_rzz;
  __pyx_t_double_complex __pyx_r;
  double __pyx_t_1[8];

  /* "_loggamma.pxd":109
 *     """
 *     cdef:
 *         double *coeffs = [             # <<<<<<<<<<<<<<
 *             -2.955065359477124183e-2, 6.4102564102564102564e-3,
 *             -1.9175269175269175269e-3, 8.4175084175084175084e-4,
 */
  __pyx_t_1[0] = -2.955065359477124183e-2;
  __pyx_t_1[1] = 6.4102564102564102564e-3;
  __pyx_t_1[2] = -1.9175269175269175269e-3;
  __pyx_t_1[3] = 8.4175084175084175084e-4;
  __pyx_t_1[4] = -5.952380952380952381e-4;
  __pyx_t_1[5] = 7.9365079365079365079e-4;
  __pyx_t_1[6] = -2.7777777777777777778e-3;
  __pyx_t_1[7] = 8.3333333333333333333e-2;
  __pyx_v_coeffs = __pyx_t_1;

  /* "_loggamma.pxd":115
 *             -2.7777777777777777778e-3, 8.3333333333333333333e-2
 *         ]
 *         double complex rz = 1.0/z             # <<<<<<<<<<<<<<
 *         double complex rzz = rz/z
 * 
 */
  __pyx_v_rz = __Pyx_c_quot_double(__pyx_t_double_complex_from_parts(1.0, 0), __pyx_v_z);

  /* "_loggamma.pxd":116
 *         ]
 *         double complex rz = 1.0/z
 *         double complex rzz = rz/z             # <<<<<<<<<<<<<<
 * 
 *     return (z - 0.5)*zlog(z) - z + HLOG2PI + rz*cevalpoly(coeffs, 7, rzz)
 */
  __pyx_v_rzz = __Pyx_c_quot_double(__pyx_v_rz, __pyx_v_z);

  /* "_loggamma.pxd":118
 *         double complex rzz = rz/z
 * 
 *     return (z - 0.5)*zlog(z) - z + HLOG2PI + rz*cevalpoly(coeffs, 7, rzz)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_c_sum_double(__Pyx_c_sum_double(__Pyx_c_diff_double(__Pyx_c_prod_double(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(0.5, 0)), __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_z)), __pyx_v_z), __pyx_t_double_complex_from_parts(0.9189385332046728, 0)), __Pyx_c_prod_double(__pyx_v_rz, __pyx_f_5scipy_7special_9_evalpoly_cevalpoly(__pyx_v_coeffs, 7, __pyx_v_rzz)));
  goto __pyx_L0;

  /* "_loggamma.pxd":101
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma_stirling(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Stirling series for log-Gamma.
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_loggamma.pxd":122
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma_taylor(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Taylor series for log-Gamma around z = 1.
 * 
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_loggamma_taylor(__pyx_t_double_complex __pyx_v_z) {
  double *__pyx_v_coeffs;
  __pyx_t_double_complex __pyx_r;
  double __pyx_t_1[23];

  /* "_loggamma.pxd":133
 *     """
 *     cdef:
 *         double *coeffs = [             # <<<<<<<<<<<<<<
 *             -4.3478266053040259361e-2, 4.5454556293204669442e-2,
 *             -4.7619070330142227991e-2, 5.000004769810169364e-2,
 */
  __pyx_t_1[0] = -4.3478266053040259361e-2;
  __pyx_t_1[1] = 4.5454556293204669442e-2;
  __pyx_t_1[2] = -4.7619070330142227991e-2;
  __pyx_t_1[3] = 5.000004769810169364e-2;
  __pyx_t_1[4] = -5.2631679379616660734e-2;
  __pyx_t_1[5] = 5.5555767627403611102e-2;
  __pyx_t_1[6] = -5.8823978658684582339e-2;
  __pyx_t_1[7] = 6.2500955141213040742e-2;
  __pyx_t_1[8] = -6.6668705882420468033e-2;
  __pyx_t_1[9] = 7.1432946295361336059e-2;
  __pyx_t_1[10] = -7.6932516411352191473e-2;
  __pyx_t_1[11] = 8.3353840546109004025e-2;
  __pyx_t_1[12] = -9.0954017145829042233e-2;
  __pyx_t_1[13] = 1.0009945751278180853e-1;
  __pyx_t_1[14] = -1.1133426586956469049e-1;
  __pyx_t_1[15] = 1.2550966952474304242e-1;
  __pyx_t_1[16] = -1.4404989676884611812e-1;
  __pyx_t_1[17] = 1.6955717699740818995e-1;
  __pyx_t_1[18] = -2.0738555102867398527e-1;
  __pyx_t_1[19] = 2.7058080842778454788e-1;
  __pyx_t_1[20] = -4.0068563438653142847e-1;
  __pyx_t_1[21] = 8.2246703342411321824e-1;
  __pyx_t_1[22] = -5.7721566490153286061e-1;
  __pyx_v_coeffs = __pyx_t_1;

  /* "_loggamma.pxd":148
 *         ]
 * 
 *     z = z - 1             # <<<<<<<<<<<<<<
 *     return z*cevalpoly(coeffs, 22, z)
 * 
 */
  __pyx_v_z = __Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0));

  /* "_loggamma.pxd":149
 * 
 *     z = z - 1
 *     return z*cevalpoly(coeffs, 22, z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_c_prod_double(__pyx_v_z, __pyx_f_5scipy_7special_9_evalpoly_cevalpoly(__pyx_v_coeffs, 22, __pyx_v_z));
  goto __pyx_L0;

  /* "_loggamma.pxd":122
 * 
 * @cython.cdivision(True)
 * cdef inline double complex loggamma_taylor(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Taylor series for log-Gamma around z = 1.
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_loggamma.pxd":152
 * 
 * 
 * cdef inline double complex cgamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_cgamma(__pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_loggamma.pxd":154
 * cdef inline double complex cgamma(double complex z) nogil:
 *     """Compute Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):             # <<<<<<<<<<<<<<
 *         # Poles
 *         sf_error.error("gamma", sf_error.SINGULAR, NULL)
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) <= 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(floor(__Pyx_CREAL(__pyx_v_z)), 0))) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_loggamma.pxd":156
 *     if z.real <= 0 and z == floor(z.real):
 *         # Poles
 *         sf_error.error("gamma", sf_error.SINGULAR, NULL)             # <<<<<<<<<<<<<<
 *         return nan + 1J*nan
 *     return zexp(loggamma(z))
 */
    sf_error(((char *)"gamma"), SF_ERROR_SINGULAR, NULL);

    /* "_loggamma.pxd":157
 *         # Poles
 *         sf_error.error("gamma", sf_error.SINGULAR, NULL)
 *         return nan + 1J*nan             # <<<<<<<<<<<<<<
 *     return zexp(loggamma(z))
 * 
 */
    __pyx_r = __Pyx_c_sum_double(__pyx_t_double_complex_from_parts(NPY_NAN, 0), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_NAN, 0)));
    goto __pyx_L0;

    /* "_loggamma.pxd":154
 * cdef inline double complex cgamma(double complex z) nogil:
 *     """Compute Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):             # <<<<<<<<<<<<<<
 *         # Poles
 *         sf_error.error("gamma", sf_error.SINGULAR, NULL)
 */
  }

  /* "_loggamma.pxd":158
 *         sf_error.error("gamma", sf_error.SINGULAR, NULL)
 *         return nan + 1J*nan
 *     return zexp(loggamma(z))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zexp(__pyx_f_5scipy_7special_9_loggamma_loggamma(__pyx_v_z));
  goto __pyx_L0;

  /* "_loggamma.pxd":152
 * 
 * 
 * cdef inline double complex cgamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_loggamma.pxd":161
 * 
 * 
 * cdef inline double complex crgamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute 1/Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_9_loggamma_crgamma(__pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_loggamma.pxd":163
 * cdef inline double complex crgamma(double complex z) nogil:
 *     """Compute 1/Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):             # <<<<<<<<<<<<<<
 *         # Zeros at 0, -1, -2, ...
 *         return 0
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) <= 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(floor(__Pyx_CREAL(__pyx_v_z)), 0))) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_loggamma.pxd":165
 *     if z.real <= 0 and z == floor(z.real):
 *         # Zeros at 0, -1, -2, ...
 *         return 0             # <<<<<<<<<<<<<<
 *     return zexp(-loggamma(z))
 */
    __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
    goto __pyx_L0;

    /* "_loggamma.pxd":163
 * cdef inline double complex crgamma(double complex z) nogil:
 *     """Compute 1/Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):             # <<<<<<<<<<<<<<
 *         # Zeros at 0, -1, -2, ...
 *         return 0
 */
  }

  /* "_loggamma.pxd":166
 *         # Zeros at 0, -1, -2, ...
 *         return 0
 *     return zexp(-loggamma(z))             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zexp(__Pyx_c_neg_double(__pyx_f_5scipy_7special_9_loggamma_loggamma(__pyx_v_z)));
  goto __pyx_L0;

  /* "_loggamma.pxd":161
 * 
 * 
 * cdef inline double complex crgamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """Compute 1/Gamma(z) using loggamma."""
 *     if z.real <= 0 and z == floor(z.real):
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_xlogy.pxd":6
 * from ._cunity cimport clog1p
 * 
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:             # <<<<<<<<<<<<<<
 *     if x == 0 and not zisnan(y):
 *         return 0
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlogy(double __pyx_v_x, double __pyx_v_y) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_xlogy.pxd":7
 * 
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((!(__pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_y) != 0)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_xlogy.pxd":8
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         return x * zlog(y)
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_xlogy.pxd":7
 * 
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  }

  /* "_xlogy.pxd":10
 *         return 0
 *     else:
 *         return x * zlog(y)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 */
  /*else*/ {
    __pyx_r = (__pyx_v_x * __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_y));
    goto __pyx_L0;
  }

  /* "_xlogy.pxd":6
 * from ._cunity cimport clog1p
 * 
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:             # <<<<<<<<<<<<<<
 *     if x == 0 and not zisnan(y):
 *         return 0
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlogy(__pyx_t_double_complex __pyx_v_x, __pyx_t_double_complex __pyx_v_y) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_xlogy.pxd":7
 * 
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_2 = ((__Pyx_c_eq_double(__pyx_v_x, __pyx_t_double_complex_from_parts(0, 0))) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((!(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_y) != 0)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_xlogy.pxd":8
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         return x * zlog(y)
 */
    __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
    goto __pyx_L0;

    /* "_xlogy.pxd":7
 * 
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  }

  /* "_xlogy.pxd":10
 *         return 0
 *     else:
 *         return x * zlog(y)             # <<<<<<<<<<<<<<
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 */
  /*else*/ {
    __pyx_r = __Pyx_c_prod_double(__pyx_v_x, __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_y));
    goto __pyx_L0;
  }

  /* "_xlogy.pxd":6
 * from ._cunity cimport clog1p
 * 
 * cdef inline number_t xlogy(number_t x, number_t y) nogil:             # <<<<<<<<<<<<<<
 *     if x == 0 and not zisnan(y):
 *         return 0
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_xlogy.pxd":12
 *         return x * zlog(y)
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:             # <<<<<<<<<<<<<<
 *     if x == 0 and not zisnan(y):
 *         return 0
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlog1py(double __pyx_v_x, double __pyx_v_y) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_xlogy.pxd":13
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((!(__pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_y) != 0)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_xlogy.pxd":14
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         if number_t is double:
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "_xlogy.pxd":13
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  }

  /* "_xlogy.pxd":16
 *         return 0
 *     else:
 *         if number_t is double:             # <<<<<<<<<<<<<<
 *             return x * npy_log1p(y)
 *         else:
 */
  /*else*/ {

    /* "_xlogy.pxd":17
 *     else:
 *         if number_t is double:
 *             return x * npy_log1p(y)             # <<<<<<<<<<<<<<
 *         else:
 *             return x * clog1p(y)
 */
    __pyx_r = (__pyx_v_x * npy_log1p(__pyx_v_y));
    goto __pyx_L0;
  }

  /* "_xlogy.pxd":12
 *         return x * zlog(y)
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:             # <<<<<<<<<<<<<<
 *     if x == 0 and not zisnan(y):
 *         return 0
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlog1py(__pyx_t_double_complex __pyx_v_x, __pyx_t_double_complex __pyx_v_y) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_xlogy.pxd":13
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_2 = ((__Pyx_c_eq_double(__pyx_v_x, __pyx_t_double_complex_from_parts(0, 0))) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((!(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zisnan(__pyx_v_y) != 0)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_xlogy.pxd":14
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         if number_t is double:
 */
    __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
    goto __pyx_L0;

    /* "_xlogy.pxd":13
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:
 *     if x == 0 and not zisnan(y):             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  }

  /* "_xlogy.pxd":16
 *         return 0
 *     else:
 *         if number_t is double:             # <<<<<<<<<<<<<<
 *             return x * npy_log1p(y)
 *         else:
 */
  /*else*/ {

    /* "_xlogy.pxd":19
 *             return x * npy_log1p(y)
 *         else:
 *             return x * clog1p(y)             # <<<<<<<<<<<<<<
 */
    __pyx_r = __Pyx_c_prod_double(__pyx_v_x, __pyx_f_5scipy_7special_7_cunity_clog1p(__pyx_v_y));
    goto __pyx_L0;
  }

  /* "_xlogy.pxd":12
 *         return x * zlog(y)
 * 
 * cdef inline number_t xlog1py(number_t x, number_t y) nogil:             # <<<<<<<<<<<<<<
 *     if x == 0 and not zisnan(y):
 *         return 0
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_hyp0f1.pxd":23
 * # Real-valued kernel
 * #
 * cdef inline double _hyp0f1_real(double v, double z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double arg, v1, arg_exp, bess_val
 * 
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_real(double __pyx_v_v, double __pyx_v_z) {
  double __pyx_v_arg;
  double __pyx_v_arg_exp;
  double __pyx_v_bess_val;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  double __pyx_t_3;
  double __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_hyp0f1.pxd":27
 * 
 *     # handle poles, zeros
 *     if v <= 0.0 and v == floor(v):             # <<<<<<<<<<<<<<
 *         return NAN
 *     if z == 0.0 and v != 0.0:
 */
  __pyx_t_2 = ((__pyx_v_v <= 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_v == floor(__pyx_v_v)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":28
 *     # handle poles, zeros
 *     if v <= 0.0 and v == floor(v):
 *         return NAN             # <<<<<<<<<<<<<<
 *     if z == 0.0 and v != 0.0:
 *         return 1.0
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_hyp0f1.pxd":27
 * 
 *     # handle poles, zeros
 *     if v <= 0.0 and v == floor(v):             # <<<<<<<<<<<<<<
 *         return NAN
 *     if z == 0.0 and v != 0.0:
 */
  }

  /* "_hyp0f1.pxd":29
 *     if v <= 0.0 and v == floor(v):
 *         return NAN
 *     if z == 0.0 and v != 0.0:             # <<<<<<<<<<<<<<
 *         return 1.0
 * 
 */
  __pyx_t_2 = ((__pyx_v_z == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_v != 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":30
 *         return NAN
 *     if z == 0.0 and v != 0.0:
 *         return 1.0             # <<<<<<<<<<<<<<
 * 
 *     # both v and z small: truncate the Taylor series at O(z**2)
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "_hyp0f1.pxd":29
 *     if v <= 0.0 and v == floor(v):
 *         return NAN
 *     if z == 0.0 and v != 0.0:             # <<<<<<<<<<<<<<
 *         return 1.0
 * 
 */
  }

  /* "_hyp0f1.pxd":33
 * 
 *     # both v and z small: truncate the Taylor series at O(z**2)
 *     if fabs(z) < 1e-6*(1.0 + fabs(v)):             # <<<<<<<<<<<<<<
 *         return 1.0 + z/v + z*z/(2.0*v*(v+1.0))
 * 
 */
  __pyx_t_1 = ((fabs(__pyx_v_z) < (1e-6 * (1.0 + fabs(__pyx_v_v)))) != 0);
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":34
 *     # both v and z small: truncate the Taylor series at O(z**2)
 *     if fabs(z) < 1e-6*(1.0 + fabs(v)):
 *         return 1.0 + z/v + z*z/(2.0*v*(v+1.0))             # <<<<<<<<<<<<<<
 * 
 *     if z > 0:
 */
    if (unlikely(__pyx_v_v == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(9, 34, __pyx_L1_error)
    }
    __pyx_t_3 = (__pyx_v_z * __pyx_v_z);
    __pyx_t_4 = ((2.0 * __pyx_v_v) * (__pyx_v_v + 1.0));
    if (unlikely(__pyx_t_4 == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(9, 34, __pyx_L1_error)
    }
    __pyx_r = ((1.0 + (__pyx_v_z / __pyx_v_v)) + (__pyx_t_3 / __pyx_t_4));
    goto __pyx_L0;

    /* "_hyp0f1.pxd":33
 * 
 *     # both v and z small: truncate the Taylor series at O(z**2)
 *     if fabs(z) < 1e-6*(1.0 + fabs(v)):             # <<<<<<<<<<<<<<
 *         return 1.0 + z/v + z*z/(2.0*v*(v+1.0))
 * 
 */
  }

  /* "_hyp0f1.pxd":36
 *         return 1.0 + z/v + z*z/(2.0*v*(v+1.0))
 * 
 *     if z > 0:             # <<<<<<<<<<<<<<
 *         arg = sqrt(z)
 *         arg_exp = xlogy(1.0-v, arg) + lgam(v)
 */
  __pyx_t_1 = ((__pyx_v_z > 0.0) != 0);
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":37
 * 
 *     if z > 0:
 *         arg = sqrt(z)             # <<<<<<<<<<<<<<
 *         arg_exp = xlogy(1.0-v, arg) + lgam(v)
 *         bess_val = iv(v-1, 2.0*arg)
 */
    __pyx_v_arg = sqrt(__pyx_v_z);

    /* "_hyp0f1.pxd":38
 *     if z > 0:
 *         arg = sqrt(z)
 *         arg_exp = xlogy(1.0-v, arg) + lgam(v)             # <<<<<<<<<<<<<<
 *         bess_val = iv(v-1, 2.0*arg)
 * 
 */
    __pyx_v_arg_exp = (__pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlogy((1.0 - __pyx_v_v), __pyx_v_arg) + lgam(__pyx_v_v));

    /* "_hyp0f1.pxd":39
 *         arg = sqrt(z)
 *         arg_exp = xlogy(1.0-v, arg) + lgam(v)
 *         bess_val = iv(v-1, 2.0*arg)             # <<<<<<<<<<<<<<
 * 
 *         if (arg_exp > log(DBL_MAX) or bess_val == 0 or   # overflow
 */
    __pyx_v_bess_val = iv((__pyx_v_v - 1.0), (2.0 * __pyx_v_arg));

    /* "_hyp0f1.pxd":41
 *         bess_val = iv(v-1, 2.0*arg)
 * 
 *         if (arg_exp > log(DBL_MAX) or bess_val == 0 or   # overflow             # <<<<<<<<<<<<<<
 *             arg_exp < log(DBL_MIN) or isinf(bess_val)):  # underflow
 *             return _hyp0f1_asy(v, z)
 */
    __pyx_t_2 = ((__pyx_v_arg_exp > log(DBL_MAX)) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_bess_val == 0.0) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L12_bool_binop_done;
    }

    /* "_hyp0f1.pxd":42
 * 
 *         if (arg_exp > log(DBL_MAX) or bess_val == 0 or   # overflow
 *             arg_exp < log(DBL_MIN) or isinf(bess_val)):  # underflow             # <<<<<<<<<<<<<<
 *             return _hyp0f1_asy(v, z)
 *         else:
 */
    __pyx_t_2 = ((__pyx_v_arg_exp < log(DBL_MIN)) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L12_bool_binop_done;
    }
    __pyx_t_2 = (npy_isinf(__pyx_v_bess_val) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L12_bool_binop_done:;

    /* "_hyp0f1.pxd":41
 *         bess_val = iv(v-1, 2.0*arg)
 * 
 *         if (arg_exp > log(DBL_MAX) or bess_val == 0 or   # overflow             # <<<<<<<<<<<<<<
 *             arg_exp < log(DBL_MIN) or isinf(bess_val)):  # underflow
 *             return _hyp0f1_asy(v, z)
 */
    if (__pyx_t_1) {

      /* "_hyp0f1.pxd":43
 *         if (arg_exp > log(DBL_MAX) or bess_val == 0 or   # overflow
 *             arg_exp < log(DBL_MIN) or isinf(bess_val)):  # underflow
 *             return _hyp0f1_asy(v, z)             # <<<<<<<<<<<<<<
 *         else:
 *             return exp(arg_exp) * gammasgn(v) * bess_val
 */
      __pyx_r = __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_asy(__pyx_v_v, __pyx_v_z);
      goto __pyx_L0;

      /* "_hyp0f1.pxd":41
 *         bess_val = iv(v-1, 2.0*arg)
 * 
 *         if (arg_exp > log(DBL_MAX) or bess_val == 0 or   # overflow             # <<<<<<<<<<<<<<
 *             arg_exp < log(DBL_MIN) or isinf(bess_val)):  # underflow
 *             return _hyp0f1_asy(v, z)
 */
    }

    /* "_hyp0f1.pxd":45
 *             return _hyp0f1_asy(v, z)
 *         else:
 *             return exp(arg_exp) * gammasgn(v) * bess_val             # <<<<<<<<<<<<<<
 *     else:
 *         arg = sqrt(-z)
 */
    /*else*/ {
      __pyx_r = ((exp(__pyx_v_arg_exp) * gammasgn(__pyx_v_v)) * __pyx_v_bess_val);
      goto __pyx_L0;
    }

    /* "_hyp0f1.pxd":36
 *         return 1.0 + z/v + z*z/(2.0*v*(v+1.0))
 * 
 *     if z > 0:             # <<<<<<<<<<<<<<
 *         arg = sqrt(z)
 *         arg_exp = xlogy(1.0-v, arg) + lgam(v)
 */
  }

  /* "_hyp0f1.pxd":47
 *             return exp(arg_exp) * gammasgn(v) * bess_val
 *     else:
 *         arg = sqrt(-z)             # <<<<<<<<<<<<<<
 *         return pow(arg, 1.0 - v) * Gamma(v) * jv(v - 1, 2*arg)
 * 
 */
  /*else*/ {
    __pyx_v_arg = sqrt((-__pyx_v_z));

    /* "_hyp0f1.pxd":48
 *     else:
 *         arg = sqrt(-z)
 *         return pow(arg, 1.0 - v) * Gamma(v) * jv(v - 1, 2*arg)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_r = ((pow(__pyx_v_arg, (1.0 - __pyx_v_v)) * Gamma(__pyx_v_v)) * jv((__pyx_v_v - 1.0), (2.0 * __pyx_v_arg)));
    goto __pyx_L0;
  }

  /* "_hyp0f1.pxd":23
 * # Real-valued kernel
 * #
 * cdef inline double _hyp0f1_real(double v, double z) nogil:             # <<<<<<<<<<<<<<
 *     cdef double arg, v1, arg_exp, bess_val
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._hyp0f1._hyp0f1_real", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_hyp0f1.pxd":51
 * 
 * 
 * cdef inline double _hyp0f1_asy(double v, double z) nogil:             # <<<<<<<<<<<<<<
 *     r"""Asymptotic expansion for I_{v-1}(2*sqrt(z)) * Gamma(v)
 *     for real $z > 0$ and $v\to +\infty$.
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_asy(double __pyx_v_v, double __pyx_v_z) {
  double __pyx_v_arg;
  double __pyx_v_v1;
  double __pyx_v_x;
  double __pyx_v_p1;
  double __pyx_v_eta;
  double __pyx_v_arg_exp_i;
  double __pyx_v_arg_exp_k;
  double __pyx_v_pp;
  double __pyx_v_p2;
  double __pyx_v_p4;
  double __pyx_v_p6;
  double __pyx_v_u1;
  double __pyx_v_u2;
  double __pyx_v_u3;
  double __pyx_v_u_corr_i;
  double __pyx_v_u_corr_k;
  double __pyx_v_result;
  double __pyx_v_gs;
  double __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_hyp0f1.pxd":58
 *     """
 *     cdef:
 *         double arg = sqrt(z)             # <<<<<<<<<<<<<<
 *         double v1 = fabs(v - 1)
 *         double x = 2.0 * arg / v1
 */
  __pyx_v_arg = sqrt(__pyx_v_z);

  /* "_hyp0f1.pxd":59
 *     cdef:
 *         double arg = sqrt(z)
 *         double v1 = fabs(v - 1)             # <<<<<<<<<<<<<<
 *         double x = 2.0 * arg / v1
 *         double p1 = sqrt(1.0 + x*x)
 */
  __pyx_v_v1 = fabs((__pyx_v_v - 1.0));

  /* "_hyp0f1.pxd":60
 *         double arg = sqrt(z)
 *         double v1 = fabs(v - 1)
 *         double x = 2.0 * arg / v1             # <<<<<<<<<<<<<<
 *         double p1 = sqrt(1.0 + x*x)
 *         double eta = p1 + log(x) - log1p(p1)
 */
  __pyx_t_1 = (2.0 * __pyx_v_arg);
  if (unlikely(__pyx_v_v1 == 0)) {
    #ifdef WITH_THREAD
    PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
    #endif
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    #ifdef WITH_THREAD
    __Pyx_PyGILState_Release(__pyx_gilstate_save);
    #endif
    __PYX_ERR(9, 60, __pyx_L1_error)
  }
  __pyx_v_x = (__pyx_t_1 / __pyx_v_v1);

  /* "_hyp0f1.pxd":61
 *         double v1 = fabs(v - 1)
 *         double x = 2.0 * arg / v1
 *         double p1 = sqrt(1.0 + x*x)             # <<<<<<<<<<<<<<
 *         double eta = p1 + log(x) - log1p(p1)
 *         double arg_exp_i, arg_exp_k
 */
  __pyx_v_p1 = sqrt((1.0 + (__pyx_v_x * __pyx_v_x)));

  /* "_hyp0f1.pxd":62
 *         double x = 2.0 * arg / v1
 *         double p1 = sqrt(1.0 + x*x)
 *         double eta = p1 + log(x) - log1p(p1)             # <<<<<<<<<<<<<<
 *         double arg_exp_i, arg_exp_k
 *         double pp, p2, p4, p6, u1, u2, u3, u_corr_i, u_corr_k
 */
  __pyx_v_eta = ((__pyx_v_p1 + log(__pyx_v_x)) - log1p(__pyx_v_p1));

  /* "_hyp0f1.pxd":67
 *         double result, gs
 * 
 *     arg_exp_i = -0.5*log(p1)             # <<<<<<<<<<<<<<
 *     arg_exp_i -= 0.5*log(2.0*M_PI*v1)
 *     arg_exp_i += lgam(v)
 */
  __pyx_v_arg_exp_i = (-0.5 * log(__pyx_v_p1));

  /* "_hyp0f1.pxd":68
 * 
 *     arg_exp_i = -0.5*log(p1)
 *     arg_exp_i -= 0.5*log(2.0*M_PI*v1)             # <<<<<<<<<<<<<<
 *     arg_exp_i += lgam(v)
 *     gs = gammasgn(v)
 */
  __pyx_v_arg_exp_i = (__pyx_v_arg_exp_i - (0.5 * log(((2.0 * M_PI) * __pyx_v_v1))));

  /* "_hyp0f1.pxd":69
 *     arg_exp_i = -0.5*log(p1)
 *     arg_exp_i -= 0.5*log(2.0*M_PI*v1)
 *     arg_exp_i += lgam(v)             # <<<<<<<<<<<<<<
 *     gs = gammasgn(v)
 * 
 */
  __pyx_v_arg_exp_i = (__pyx_v_arg_exp_i + lgam(__pyx_v_v));

  /* "_hyp0f1.pxd":70
 *     arg_exp_i -= 0.5*log(2.0*M_PI*v1)
 *     arg_exp_i += lgam(v)
 *     gs = gammasgn(v)             # <<<<<<<<<<<<<<
 * 
 *     arg_exp_k = arg_exp_i
 */
  __pyx_v_gs = gammasgn(__pyx_v_v);

  /* "_hyp0f1.pxd":72
 *     gs = gammasgn(v)
 * 
 *     arg_exp_k = arg_exp_i             # <<<<<<<<<<<<<<
 *     arg_exp_i += v1 * eta
 *     arg_exp_k -= v1 * eta
 */
  __pyx_v_arg_exp_k = __pyx_v_arg_exp_i;

  /* "_hyp0f1.pxd":73
 * 
 *     arg_exp_k = arg_exp_i
 *     arg_exp_i += v1 * eta             # <<<<<<<<<<<<<<
 *     arg_exp_k -= v1 * eta
 * 
 */
  __pyx_v_arg_exp_i = (__pyx_v_arg_exp_i + (__pyx_v_v1 * __pyx_v_eta));

  /* "_hyp0f1.pxd":74
 *     arg_exp_k = arg_exp_i
 *     arg_exp_i += v1 * eta
 *     arg_exp_k -= v1 * eta             # <<<<<<<<<<<<<<
 * 
 *     # large-v asymptotic correction, DLMF 10.41.10
 */
  __pyx_v_arg_exp_k = (__pyx_v_arg_exp_k - (__pyx_v_v1 * __pyx_v_eta));

  /* "_hyp0f1.pxd":77
 * 
 *     # large-v asymptotic correction, DLMF 10.41.10
 *     pp = 1.0/p1             # <<<<<<<<<<<<<<
 *     p2 = pp*pp
 *     p4 = p2*p2
 */
  if (unlikely(__pyx_v_p1 == 0)) {
    #ifdef WITH_THREAD
    PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
    #endif
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    #ifdef WITH_THREAD
    __Pyx_PyGILState_Release(__pyx_gilstate_save);
    #endif
    __PYX_ERR(9, 77, __pyx_L1_error)
  }
  __pyx_v_pp = (1.0 / __pyx_v_p1);

  /* "_hyp0f1.pxd":78
 *     # large-v asymptotic correction, DLMF 10.41.10
 *     pp = 1.0/p1
 *     p2 = pp*pp             # <<<<<<<<<<<<<<
 *     p4 = p2*p2
 *     p6 = p4*p2
 */
  __pyx_v_p2 = (__pyx_v_pp * __pyx_v_pp);

  /* "_hyp0f1.pxd":79
 *     pp = 1.0/p1
 *     p2 = pp*pp
 *     p4 = p2*p2             # <<<<<<<<<<<<<<
 *     p6 = p4*p2
 *     u1 = (3.0 - 5.0*p2) * pp / 24.0
 */
  __pyx_v_p4 = (__pyx_v_p2 * __pyx_v_p2);

  /* "_hyp0f1.pxd":80
 *     p2 = pp*pp
 *     p4 = p2*p2
 *     p6 = p4*p2             # <<<<<<<<<<<<<<
 *     u1 = (3.0 - 5.0*p2) * pp / 24.0
 *     u2 = (81.0 - 462.0*p2 + 385.0*p4) * p2 / 1152.0
 */
  __pyx_v_p6 = (__pyx_v_p4 * __pyx_v_p2);

  /* "_hyp0f1.pxd":81
 *     p4 = p2*p2
 *     p6 = p4*p2
 *     u1 = (3.0 - 5.0*p2) * pp / 24.0             # <<<<<<<<<<<<<<
 *     u2 = (81.0 - 462.0*p2 + 385.0*p4) * p2 / 1152.0
 *     u3 = (30375.0 - 369603.0*p2 + 765765.0*p4 - 425425.0*p6) * pp * p2 / 414720.0
 */
  __pyx_v_u1 = (((3.0 - (5.0 * __pyx_v_p2)) * __pyx_v_pp) / 24.0);

  /* "_hyp0f1.pxd":82
 *     p6 = p4*p2
 *     u1 = (3.0 - 5.0*p2) * pp / 24.0
 *     u2 = (81.0 - 462.0*p2 + 385.0*p4) * p2 / 1152.0             # <<<<<<<<<<<<<<
 *     u3 = (30375.0 - 369603.0*p2 + 765765.0*p4 - 425425.0*p6) * pp * p2 / 414720.0
 *     u_corr_i = 1.0 + u1/v1 + u2/(v1*v1) + u3/(v1*v1*v1)
 */
  __pyx_v_u2 = ((((81.0 - (462.0 * __pyx_v_p2)) + (385.0 * __pyx_v_p4)) * __pyx_v_p2) / 1152.0);

  /* "_hyp0f1.pxd":83
 *     u1 = (3.0 - 5.0*p2) * pp / 24.0
 *     u2 = (81.0 - 462.0*p2 + 385.0*p4) * p2 / 1152.0
 *     u3 = (30375.0 - 369603.0*p2 + 765765.0*p4 - 425425.0*p6) * pp * p2 / 414720.0             # <<<<<<<<<<<<<<
 *     u_corr_i = 1.0 + u1/v1 + u2/(v1*v1) + u3/(v1*v1*v1)
 * 
 */
  __pyx_v_u3 = ((((((30375.0 - (369603.0 * __pyx_v_p2)) + (765765.0 * __pyx_v_p4)) - (425425.0 * __pyx_v_p6)) * __pyx_v_pp) * __pyx_v_p2) / 414720.0);

  /* "_hyp0f1.pxd":84
 *     u2 = (81.0 - 462.0*p2 + 385.0*p4) * p2 / 1152.0
 *     u3 = (30375.0 - 369603.0*p2 + 765765.0*p4 - 425425.0*p6) * pp * p2 / 414720.0
 *     u_corr_i = 1.0 + u1/v1 + u2/(v1*v1) + u3/(v1*v1*v1)             # <<<<<<<<<<<<<<
 * 
 *     result = exp(arg_exp_i - xlogy(v1, arg)) * gs * u_corr_i
 */
  if (unlikely(__pyx_v_v1 == 0)) {
    #ifdef WITH_THREAD
    PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
    #endif
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    #ifdef WITH_THREAD
    __Pyx_PyGILState_Release(__pyx_gilstate_save);
    #endif
    __PYX_ERR(9, 84, __pyx_L1_error)
  }
  __pyx_t_1 = (__pyx_v_v1 * __pyx_v_v1);
  if (unlikely(__pyx_t_1 == 0)) {
    #ifdef WITH_THREAD
    PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
    #endif
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    #ifdef WITH_THREAD
    __Pyx_PyGILState_Release(__pyx_gilstate_save);
    #endif
    __PYX_ERR(9, 84, __pyx_L1_error)
  }
  __pyx_t_2 = ((__pyx_v_v1 * __pyx_v_v1) * __pyx_v_v1);
  if (unlikely(__pyx_t_2 == 0)) {
    #ifdef WITH_THREAD
    PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
    #endif
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    #ifdef WITH_THREAD
    __Pyx_PyGILState_Release(__pyx_gilstate_save);
    #endif
    __PYX_ERR(9, 84, __pyx_L1_error)
  }
  __pyx_v_u_corr_i = (((1.0 + (__pyx_v_u1 / __pyx_v_v1)) + (__pyx_v_u2 / __pyx_t_1)) + (__pyx_v_u3 / __pyx_t_2));

  /* "_hyp0f1.pxd":86
 *     u_corr_i = 1.0 + u1/v1 + u2/(v1*v1) + u3/(v1*v1*v1)
 * 
 *     result = exp(arg_exp_i - xlogy(v1, arg)) * gs * u_corr_i             # <<<<<<<<<<<<<<
 *     if v - 1 < 0:
 *         # DLMF 10.27.2: I_{-v} = I_{v} + (2/pi) sin(pi*v) K_v
 */
  __pyx_v_result = ((exp((__pyx_v_arg_exp_i - __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlogy(__pyx_v_v1, __pyx_v_arg))) * __pyx_v_gs) * __pyx_v_u_corr_i);

  /* "_hyp0f1.pxd":87
 * 
 *     result = exp(arg_exp_i - xlogy(v1, arg)) * gs * u_corr_i
 *     if v - 1 < 0:             # <<<<<<<<<<<<<<
 *         # DLMF 10.27.2: I_{-v} = I_{v} + (2/pi) sin(pi*v) K_v
 *         u_corr_k = 1.0 - u1/v1 + u2/(v1*v1) - u3/(v1*v1*v1)
 */
  __pyx_t_3 = (((__pyx_v_v - 1.0) < 0.0) != 0);
  if (__pyx_t_3) {

    /* "_hyp0f1.pxd":89
 *     if v - 1 < 0:
 *         # DLMF 10.27.2: I_{-v} = I_{v} + (2/pi) sin(pi*v) K_v
 *         u_corr_k = 1.0 - u1/v1 + u2/(v1*v1) - u3/(v1*v1*v1)             # <<<<<<<<<<<<<<
 *         result += exp(arg_exp_k + xlogy(v1, arg)) * gs * 2.0 * sin_pi(v1) * u_corr_k
 * 
 */
    if (unlikely(__pyx_v_v1 == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(9, 89, __pyx_L1_error)
    }
    __pyx_t_2 = (__pyx_v_v1 * __pyx_v_v1);
    if (unlikely(__pyx_t_2 == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(9, 89, __pyx_L1_error)
    }
    __pyx_t_1 = ((__pyx_v_v1 * __pyx_v_v1) * __pyx_v_v1);
    if (unlikely(__pyx_t_1 == 0)) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(9, 89, __pyx_L1_error)
    }
    __pyx_v_u_corr_k = (((1.0 - (__pyx_v_u1 / __pyx_v_v1)) + (__pyx_v_u2 / __pyx_t_2)) - (__pyx_v_u3 / __pyx_t_1));

    /* "_hyp0f1.pxd":90
 *         # DLMF 10.27.2: I_{-v} = I_{v} + (2/pi) sin(pi*v) K_v
 *         u_corr_k = 1.0 - u1/v1 + u2/(v1*v1) - u3/(v1*v1*v1)
 *         result += exp(arg_exp_k + xlogy(v1, arg)) * gs * 2.0 * sin_pi(v1) * u_corr_k             # <<<<<<<<<<<<<<
 * 
 *     return result
 */
    __pyx_v_result = (__pyx_v_result + ((((exp((__pyx_v_arg_exp_k + __pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlogy(__pyx_v_v1, __pyx_v_arg))) * __pyx_v_gs) * 2.0) * sin_pi(__pyx_v_v1)) * __pyx_v_u_corr_k));

    /* "_hyp0f1.pxd":87
 * 
 *     result = exp(arg_exp_i - xlogy(v1, arg)) * gs * u_corr_i
 *     if v - 1 < 0:             # <<<<<<<<<<<<<<
 *         # DLMF 10.27.2: I_{-v} = I_{v} + (2/pi) sin(pi*v) K_v
 *         u_corr_k = 1.0 - u1/v1 + u2/(v1*v1) - u3/(v1*v1*v1)
 */
  }

  /* "_hyp0f1.pxd":92
 *         result += exp(arg_exp_k + xlogy(v1, arg)) * gs * 2.0 * sin_pi(v1) * u_corr_k
 * 
 *     return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "_hyp0f1.pxd":51
 * 
 * 
 * cdef inline double _hyp0f1_asy(double v, double z) nogil:             # <<<<<<<<<<<<<<
 *     r"""Asymptotic expansion for I_{v-1}(2*sqrt(z)) * Gamma(v)
 *     for real $z > 0$ and $v\to +\infty$.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._hyp0f1._hyp0f1_asy", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = 0;
  __pyx_L0:;
  return __pyx_r;
}

/* "_hyp0f1.pxd":98
 * # Complex valued kernel
 * #
 * cdef inline double complex _hyp0f1_cmplx(double v, double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef:
 *         np.npy_cdouble zz = npy_cdouble_from_double_complex(z)
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_cmplx(double __pyx_v_v, __pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_zz;
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_v_arg;
  __pyx_t_double_complex __pyx_v_s;
  __pyx_t_double_complex __pyx_v_t1;
  __pyx_t_double_complex __pyx_v_t2;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  __pyx_t_double_complex __pyx_t_3;
  __pyx_t_double_complex __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "_hyp0f1.pxd":100
 * cdef inline double complex _hyp0f1_cmplx(double v, double complex z) nogil:
 *     cdef:
 *         np.npy_cdouble zz = npy_cdouble_from_double_complex(z)             # <<<<<<<<<<<<<<
 *         np.npy_cdouble r
 *         double complex arg, s
 */
  __pyx_v_zz = __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z);

  /* "_hyp0f1.pxd":106
 * 
 *     # handle poles, zeros
 *     if v <= 0.0 and v == floor(v):             # <<<<<<<<<<<<<<
 *         return NAN
 *     if z.real == 0.0 and z.imag == 0.0 and v != 0.0:
 */
  __pyx_t_2 = ((__pyx_v_v <= 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_v == floor(__pyx_v_v)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":107
 *     # handle poles, zeros
 *     if v <= 0.0 and v == floor(v):
 *         return NAN             # <<<<<<<<<<<<<<
 *     if z.real == 0.0 and z.imag == 0.0 and v != 0.0:
 *         return 1.0
 */
    __pyx_r = __pyx_t_double_complex_from_parts(NPY_NAN, 0);
    goto __pyx_L0;

    /* "_hyp0f1.pxd":106
 * 
 *     # handle poles, zeros
 *     if v <= 0.0 and v == floor(v):             # <<<<<<<<<<<<<<
 *         return NAN
 *     if z.real == 0.0 and z.imag == 0.0 and v != 0.0:
 */
  }

  /* "_hyp0f1.pxd":108
 *     if v <= 0.0 and v == floor(v):
 *         return NAN
 *     if z.real == 0.0 and z.imag == 0.0 and v != 0.0:             # <<<<<<<<<<<<<<
 *         return 1.0
 * 
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_CIMAG(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_v != 0.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":109
 *         return NAN
 *     if z.real == 0.0 and z.imag == 0.0 and v != 0.0:
 *         return 1.0             # <<<<<<<<<<<<<<
 * 
 *     # both v and z small: truncate the Taylor series at O(z**2)
 */
    __pyx_r = __pyx_t_double_complex_from_parts(1.0, 0);
    goto __pyx_L0;

    /* "_hyp0f1.pxd":108
 *     if v <= 0.0 and v == floor(v):
 *         return NAN
 *     if z.real == 0.0 and z.imag == 0.0 and v != 0.0:             # <<<<<<<<<<<<<<
 *         return 1.0
 * 
 */
  }

  /* "_hyp0f1.pxd":112
 * 
 *     # both v and z small: truncate the Taylor series at O(z**2)
 *     if zabs(z) < 1e-6*(1.0 + zabs(v)):             # <<<<<<<<<<<<<<
 *         # need to do computations in this order, for otherwise $v\approx -z \ll 1$
 *         # it can lose precision (as was reported for 32-bit linux, see gh-6365)
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z) < (1e-6 * (1.0 + __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_v)))) != 0);
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":115
 *         # need to do computations in this order, for otherwise $v\approx -z \ll 1$
 *         # it can lose precision (as was reported for 32-bit linux, see gh-6365)
 *         t1 = 1.0 + z/v             # <<<<<<<<<<<<<<
 *         t2 = z*z / (2.0*v*(v+1.0))
 *         return t1 + t2
 */
    __pyx_t_3 = __pyx_t_double_complex_from_parts(__pyx_v_v, 0);
    if (unlikely(__Pyx_c_is_zero_double(__pyx_t_3))) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(9, 115, __pyx_L1_error)
    }
    __pyx_v_t1 = __Pyx_c_sum_double(__pyx_t_double_complex_from_parts(1.0, 0), __Pyx_c_quot_double(__pyx_v_z, __pyx_t_3));

    /* "_hyp0f1.pxd":116
 *         # it can lose precision (as was reported for 32-bit linux, see gh-6365)
 *         t1 = 1.0 + z/v
 *         t2 = z*z / (2.0*v*(v+1.0))             # <<<<<<<<<<<<<<
 *         return t1 + t2
 * 
 */
    __pyx_t_3 = __Pyx_c_prod_double(__pyx_v_z, __pyx_v_z);
    __pyx_t_4 = __pyx_t_double_complex_from_parts(((2.0 * __pyx_v_v) * (__pyx_v_v + 1.0)), 0);
    if (unlikely(__Pyx_c_is_zero_double(__pyx_t_4))) {
      #ifdef WITH_THREAD
      PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
      #endif
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      #ifdef WITH_THREAD
      __Pyx_PyGILState_Release(__pyx_gilstate_save);
      #endif
      __PYX_ERR(9, 116, __pyx_L1_error)
    }
    __pyx_v_t2 = __Pyx_c_quot_double(__pyx_t_3, __pyx_t_4);

    /* "_hyp0f1.pxd":117
 *         t1 = 1.0 + z/v
 *         t2 = z*z / (2.0*v*(v+1.0))
 *         return t1 + t2             # <<<<<<<<<<<<<<
 * 
 *     if zz.real > 0:
 */
    __pyx_r = __Pyx_c_sum_double(__pyx_v_t1, __pyx_v_t2);
    goto __pyx_L0;

    /* "_hyp0f1.pxd":112
 * 
 *     # both v and z small: truncate the Taylor series at O(z**2)
 *     if zabs(z) < 1e-6*(1.0 + zabs(v)):             # <<<<<<<<<<<<<<
 *         # need to do computations in this order, for otherwise $v\approx -z \ll 1$
 *         # it can lose precision (as was reported for 32-bit linux, see gh-6365)
 */
  }

  /* "_hyp0f1.pxd":119
 *         return t1 + t2
 * 
 *     if zz.real > 0:             # <<<<<<<<<<<<<<
 *         arg = zsqrt(z)
 *         s = 2.0 * arg
 */
  __pyx_t_1 = ((__pyx_v_zz.real > 0.0) != 0);
  if (__pyx_t_1) {

    /* "_hyp0f1.pxd":120
 * 
 *     if zz.real > 0:
 *         arg = zsqrt(z)             # <<<<<<<<<<<<<<
 *         s = 2.0 * arg
 *         r = cbesi_wrap(v-1.0, npy_cdouble_from_double_complex(s))
 */
    __pyx_v_arg = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__pyx_v_z);

    /* "_hyp0f1.pxd":121
 *     if zz.real > 0:
 *         arg = zsqrt(z)
 *         s = 2.0 * arg             # <<<<<<<<<<<<<<
 *         r = cbesi_wrap(v-1.0, npy_cdouble_from_double_complex(s))
 *     else:
 */
    __pyx_v_s = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2.0, 0), __pyx_v_arg);

    /* "_hyp0f1.pxd":122
 *         arg = zsqrt(z)
 *         s = 2.0 * arg
 *         r = cbesi_wrap(v-1.0, npy_cdouble_from_double_complex(s))             # <<<<<<<<<<<<<<
 *     else:
 *         arg = zsqrt(-z)
 */
    __pyx_v_r = cbesi_wrap((__pyx_v_v - 1.0), __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_s));

    /* "_hyp0f1.pxd":119
 *         return t1 + t2
 * 
 *     if zz.real > 0:             # <<<<<<<<<<<<<<
 *         arg = zsqrt(z)
 *         s = 2.0 * arg
 */
    goto __pyx_L11;
  }

  /* "_hyp0f1.pxd":124
 *         r = cbesi_wrap(v-1.0, npy_cdouble_from_double_complex(s))
 *     else:
 *         arg = zsqrt(-z)             # <<<<<<<<<<<<<<
 *         s = 2.0 * arg
 *         r = cbesj_wrap(v-1.0, npy_cdouble_from_double_complex(s))
 */
  /*else*/ {
    __pyx_v_arg = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zsqrt(__Pyx_c_neg_double(__pyx_v_z));

    /* "_hyp0f1.pxd":125
 *     else:
 *         arg = zsqrt(-z)
 *         s = 2.0 * arg             # <<<<<<<<<<<<<<
 *         r = cbesj_wrap(v-1.0, npy_cdouble_from_double_complex(s))
 * 
 */
    __pyx_v_s = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2.0, 0), __pyx_v_arg);

    /* "_hyp0f1.pxd":126
 *         arg = zsqrt(-z)
 *         s = 2.0 * arg
 *         r = cbesj_wrap(v-1.0, npy_cdouble_from_double_complex(s))             # <<<<<<<<<<<<<<
 * 
 *     return double_complex_from_npy_cdouble(r) * Gamma(v) * zpow(arg, 1.0 - v)
 */
    __pyx_v_r = cbesj_wrap((__pyx_v_v - 1.0), __pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_s));
  }
  __pyx_L11:;

  /* "_hyp0f1.pxd":128
 *         r = cbesj_wrap(v-1.0, npy_cdouble_from_double_complex(s))
 * 
 *     return double_complex_from_npy_cdouble(r) * Gamma(v) * zpow(arg, 1.0 - v)             # <<<<<<<<<<<<<<
 */
  __pyx_r = __Pyx_c_prod_double(__Pyx_c_prod_double(__pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r), __pyx_t_double_complex_from_parts(Gamma(__pyx_v_v), 0)), __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zpow(__pyx_v_arg, (1.0 - __pyx_v_v)));
  goto __pyx_L0;

  /* "_hyp0f1.pxd":98
 * # Complex valued kernel
 * #
 * cdef inline double complex _hyp0f1_cmplx(double v, double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef:
 *         np.npy_cdouble zz = npy_cdouble_from_double_complex(z)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("scipy.special._hyp0f1._hyp0f1_cmplx", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1);
  __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
  __pyx_L0:;
  return __pyx_r;
}

/* "_hypergeometric.pxd":22
 * 
 * @cython.cdivision(True)
 * cdef inline double hyperu(double a, double b, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyperu(double __pyx_v_a, double __pyx_v_b, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_hypergeometric.pxd":23
 * @cython.cdivision(True)
 * cdef inline double hyperu(double a, double b, double x) nogil:
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return NPY_NAN
 * 
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_a) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_b) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_x) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":24
 * cdef inline double hyperu(double a, double b, double x) nogil:
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN             # <<<<<<<<<<<<<<
 * 
 *     if x < 0.0:
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_hypergeometric.pxd":23
 * @cython.cdivision(True)
 * cdef inline double hyperu(double a, double b, double x) nogil:
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return NPY_NAN
 * 
 */
  }

  /* "_hypergeometric.pxd":26
 *         return NPY_NAN
 * 
 *     if x < 0.0:             # <<<<<<<<<<<<<<
 *         sf_error.error("hyperu", sf_error.DOMAIN, NULL)
 *         return NPY_NAN
 */
  __pyx_t_1 = ((__pyx_v_x < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":27
 * 
 *     if x < 0.0:
 *         sf_error.error("hyperu", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *         return NPY_NAN
 * 
 */
    sf_error(((char *)"hyperu"), SF_ERROR_DOMAIN, NULL);

    /* "_hypergeometric.pxd":28
 *     if x < 0.0:
 *         sf_error.error("hyperu", sf_error.DOMAIN, NULL)
 *         return NPY_NAN             # <<<<<<<<<<<<<<
 * 
 *     if x == 0.0:
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_hypergeometric.pxd":26
 *         return NPY_NAN
 * 
 *     if x < 0.0:             # <<<<<<<<<<<<<<
 *         sf_error.error("hyperu", sf_error.DOMAIN, NULL)
 *         return NPY_NAN
 */
  }

  /* "_hypergeometric.pxd":30
 *         return NPY_NAN
 * 
 *     if x == 0.0:             # <<<<<<<<<<<<<<
 *         if b > 1.0:
 *             # DMLF 13.2.16-18
 */
  __pyx_t_1 = ((__pyx_v_x == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":31
 * 
 *     if x == 0.0:
 *         if b > 1.0:             # <<<<<<<<<<<<<<
 *             # DMLF 13.2.16-18
 *             sf_error.error("hyperu", sf_error.SINGULAR, NULL)
 */
    __pyx_t_1 = ((__pyx_v_b > 1.0) != 0);
    if (__pyx_t_1) {

      /* "_hypergeometric.pxd":33
 *         if b > 1.0:
 *             # DMLF 13.2.16-18
 *             sf_error.error("hyperu", sf_error.SINGULAR, NULL)             # <<<<<<<<<<<<<<
 *             return NPY_INFINITY
 *         else:
 */
      sf_error(((char *)"hyperu"), SF_ERROR_SINGULAR, NULL);

      /* "_hypergeometric.pxd":34
 *             # DMLF 13.2.16-18
 *             sf_error.error("hyperu", sf_error.SINGULAR, NULL)
 *             return NPY_INFINITY             # <<<<<<<<<<<<<<
 *         else:
 *             # DLMF 13.2.14-15 and 13.2.19-21
 */
      __pyx_r = NPY_INFINITY;
      goto __pyx_L0;

      /* "_hypergeometric.pxd":31
 * 
 *     if x == 0.0:
 *         if b > 1.0:             # <<<<<<<<<<<<<<
 *             # DMLF 13.2.16-18
 *             sf_error.error("hyperu", sf_error.SINGULAR, NULL)
 */
    }

    /* "_hypergeometric.pxd":37
 *         else:
 *             # DLMF 13.2.14-15 and 13.2.19-21
 *             return poch(1.0 - b + a, -a)             # <<<<<<<<<<<<<<
 * 
 *     return hypU_wrap(a, b, x)
 */
    /*else*/ {
      __pyx_r = poch(((1.0 - __pyx_v_b) + __pyx_v_a), (-__pyx_v_a));
      goto __pyx_L0;
    }

    /* "_hypergeometric.pxd":30
 *         return NPY_NAN
 * 
 *     if x == 0.0:             # <<<<<<<<<<<<<<
 *         if b > 1.0:
 *             # DMLF 13.2.16-18
 */
  }

  /* "_hypergeometric.pxd":39
 *             return poch(1.0 - b + a, -a)
 * 
 *     return hypU_wrap(a, b, x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = hypU_wrap(__pyx_v_a, __pyx_v_b, __pyx_v_x);
  goto __pyx_L0;

  /* "_hypergeometric.pxd":22
 * 
 * @cython.cdivision(True)
 * cdef inline double hyperu(double a, double b, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_hypergeometric.pxd":43
 * 
 * @cython.cdivision(True)
 * cdef inline double hyp1f1(double a, double b, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1(double __pyx_v_a, double __pyx_v_b, double __pyx_v_x) {
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;

  /* "_hypergeometric.pxd":44
 * @cython.cdivision(True)
 * cdef inline double hyp1f1(double a, double b, double x) nogil:
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return NPY_NAN
 *     if b <= 0 and b == floor(b):
 */
  __pyx_t_2 = (npy_isnan(__pyx_v_a) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_b) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (npy_isnan(__pyx_v_x) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":45
 * cdef inline double hyp1f1(double a, double b, double x) nogil:
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN             # <<<<<<<<<<<<<<
 *     if b <= 0 and b == floor(b):
 *         # There is potentially a pole.
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;

    /* "_hypergeometric.pxd":44
 * @cython.cdivision(True)
 * cdef inline double hyp1f1(double a, double b, double x) nogil:
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):             # <<<<<<<<<<<<<<
 *         return NPY_NAN
 *     if b <= 0 and b == floor(b):
 */
  }

  /* "_hypergeometric.pxd":46
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN
 *     if b <= 0 and b == floor(b):             # <<<<<<<<<<<<<<
 *         # There is potentially a pole.
 *         if b <= a < 0 and a == floor(a):
 */
  __pyx_t_2 = ((__pyx_v_b <= 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_b == floor(__pyx_v_b)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":48
 *     if b <= 0 and b == floor(b):
 *         # There is potentially a pole.
 *         if b <= a < 0 and a == floor(a):             # <<<<<<<<<<<<<<
 *             # The Pochammer symbol (a)_n cancels the pole.
 *             return hyp1f1_series_track_convergence(a, b, x)
 */
    __pyx_t_2 = (__pyx_v_b <= __pyx_v_a);
    if (__pyx_t_2) {
      __pyx_t_2 = (__pyx_v_a < 0.0);
    }
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L11_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_a == floor(__pyx_v_a)) != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L11_bool_binop_done:;
    if (__pyx_t_1) {

      /* "_hypergeometric.pxd":50
 *         if b <= a < 0 and a == floor(a):
 *             # The Pochammer symbol (a)_n cancels the pole.
 *             return hyp1f1_series_track_convergence(a, b, x)             # <<<<<<<<<<<<<<
 *         return NPY_INFINITY
 *     elif a == 0 or x == 0:
 */
      __pyx_r = __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1_series_track_convergence(__pyx_v_a, __pyx_v_b, __pyx_v_x);
      goto __pyx_L0;

      /* "_hypergeometric.pxd":48
 *     if b <= 0 and b == floor(b):
 *         # There is potentially a pole.
 *         if b <= a < 0 and a == floor(a):             # <<<<<<<<<<<<<<
 *             # The Pochammer symbol (a)_n cancels the pole.
 *             return hyp1f1_series_track_convergence(a, b, x)
 */
    }

    /* "_hypergeometric.pxd":51
 *             # The Pochammer symbol (a)_n cancels the pole.
 *             return hyp1f1_series_track_convergence(a, b, x)
 *         return NPY_INFINITY             # <<<<<<<<<<<<<<
 *     elif a == 0 or x == 0:
 *         return 1
 */
    __pyx_r = NPY_INFINITY;
    goto __pyx_L0;

    /* "_hypergeometric.pxd":46
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN
 *     if b <= 0 and b == floor(b):             # <<<<<<<<<<<<<<
 *         # There is potentially a pole.
 *         if b <= a < 0 and a == floor(a):
 */
  }

  /* "_hypergeometric.pxd":52
 *             return hyp1f1_series_track_convergence(a, b, x)
 *         return NPY_INFINITY
 *     elif a == 0 or x == 0:             # <<<<<<<<<<<<<<
 *         return 1
 *     elif a == -1:
 */
  __pyx_t_3 = ((__pyx_v_a == 0.0) != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L13_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_x == 0.0) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L13_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":53
 *         return NPY_INFINITY
 *     elif a == 0 or x == 0:
 *         return 1             # <<<<<<<<<<<<<<
 *     elif a == -1:
 *         return 1 - x / b
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "_hypergeometric.pxd":52
 *             return hyp1f1_series_track_convergence(a, b, x)
 *         return NPY_INFINITY
 *     elif a == 0 or x == 0:             # <<<<<<<<<<<<<<
 *         return 1
 *     elif a == -1:
 */
  }

  /* "_hypergeometric.pxd":54
 *     elif a == 0 or x == 0:
 *         return 1
 *     elif a == -1:             # <<<<<<<<<<<<<<
 *         return 1 - x / b
 *     elif a == b:
 */
  __pyx_t_1 = ((__pyx_v_a == -1.0) != 0);
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":55
 *         return 1
 *     elif a == -1:
 *         return 1 - x / b             # <<<<<<<<<<<<<<
 *     elif a == b:
 *         return exp(x)
 */
    __pyx_r = (1.0 - (__pyx_v_x / __pyx_v_b));
    goto __pyx_L0;

    /* "_hypergeometric.pxd":54
 *     elif a == 0 or x == 0:
 *         return 1
 *     elif a == -1:             # <<<<<<<<<<<<<<
 *         return 1 - x / b
 *     elif a == b:
 */
  }

  /* "_hypergeometric.pxd":56
 *     elif a == -1:
 *         return 1 - x / b
 *     elif a == b:             # <<<<<<<<<<<<<<
 *         return exp(x)
 *     elif a - b == 1:
 */
  __pyx_t_1 = ((__pyx_v_a == __pyx_v_b) != 0);
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":57
 *         return 1 - x / b
 *     elif a == b:
 *         return exp(x)             # <<<<<<<<<<<<<<
 *     elif a - b == 1:
 *         return (1 + x / b) * exp(x)
 */
    __pyx_r = exp(__pyx_v_x);
    goto __pyx_L0;

    /* "_hypergeometric.pxd":56
 *     elif a == -1:
 *         return 1 - x / b
 *     elif a == b:             # <<<<<<<<<<<<<<
 *         return exp(x)
 *     elif a - b == 1:
 */
  }

  /* "_hypergeometric.pxd":58
 *     elif a == b:
 *         return exp(x)
 *     elif a - b == 1:             # <<<<<<<<<<<<<<
 *         return (1 + x / b) * exp(x)
 *     elif a == 1 and b == 2:
 */
  __pyx_t_1 = (((__pyx_v_a - __pyx_v_b) == 1.0) != 0);
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":59
 *         return exp(x)
 *     elif a - b == 1:
 *         return (1 + x / b) * exp(x)             # <<<<<<<<<<<<<<
 *     elif a == 1 and b == 2:
 *         return expm1(x) / x
 */
    __pyx_r = ((1.0 + (__pyx_v_x / __pyx_v_b)) * exp(__pyx_v_x));
    goto __pyx_L0;

    /* "_hypergeometric.pxd":58
 *     elif a == b:
 *         return exp(x)
 *     elif a - b == 1:             # <<<<<<<<<<<<<<
 *         return (1 + x / b) * exp(x)
 *     elif a == 1 and b == 2:
 */
  }

  /* "_hypergeometric.pxd":60
 *     elif a - b == 1:
 *         return (1 + x / b) * exp(x)
 *     elif a == 1 and b == 2:             # <<<<<<<<<<<<<<
 *         return expm1(x) / x
 *     elif a <= 0 and a == floor(a):
 */
  __pyx_t_3 = ((__pyx_v_a == 1.0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_b == 2.0) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L15_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":61
 *         return (1 + x / b) * exp(x)
 *     elif a == 1 and b == 2:
 *         return expm1(x) / x             # <<<<<<<<<<<<<<
 *     elif a <= 0 and a == floor(a):
 *         # The geometric series is finite in this case, but it could
 */
    __pyx_r = (expm1(__pyx_v_x) / __pyx_v_x);
    goto __pyx_L0;

    /* "_hypergeometric.pxd":60
 *     elif a - b == 1:
 *         return (1 + x / b) * exp(x)
 *     elif a == 1 and b == 2:             # <<<<<<<<<<<<<<
 *         return expm1(x) / x
 *     elif a <= 0 and a == floor(a):
 */
  }

  /* "_hypergeometric.pxd":62
 *     elif a == 1 and b == 2:
 *         return expm1(x) / x
 *     elif a <= 0 and a == floor(a):             # <<<<<<<<<<<<<<
 *         # The geometric series is finite in this case, but it could
 *         # still suffer from cancellation.
 */
  __pyx_t_3 = ((__pyx_v_a <= 0.0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L17_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_a == floor(__pyx_v_a)) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L17_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":65
 *         # The geometric series is finite in this case, but it could
 *         # still suffer from cancellation.
 *         return hyp1f1_series_track_convergence(a, b, x)             # <<<<<<<<<<<<<<
 * 
 *     if b > 0 and (fabs(a) + 1) * fabs(x) < 0.9 * b:
 */
    __pyx_r = __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1_series_track_convergence(__pyx_v_a, __pyx_v_b, __pyx_v_x);
    goto __pyx_L0;

    /* "_hypergeometric.pxd":62
 *     elif a == 1 and b == 2:
 *         return expm1(x) / x
 *     elif a <= 0 and a == floor(a):             # <<<<<<<<<<<<<<
 *         # The geometric series is finite in this case, but it could
 *         # still suffer from cancellation.
 */
  }

  /* "_hypergeometric.pxd":67
 *         return hyp1f1_series_track_convergence(a, b, x)
 * 
 *     if b > 0 and (fabs(a) + 1) * fabs(x) < 0.9 * b:             # <<<<<<<<<<<<<<
 *         # For the kth term of the series we are multiplying by
 *         #
 */
  __pyx_t_3 = ((__pyx_v_b > 0.0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L20_bool_binop_done;
  }
  __pyx_t_3 = ((((fabs(__pyx_v_a) + 1.0) * fabs(__pyx_v_x)) < (0.9 * __pyx_v_b)) != 0);
  __pyx_t_1 = __pyx_t_3;
  __pyx_L20_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_hypergeometric.pxd":78
 *         # which means that in this branch we get geometric
 *         # convergence.
 *         return hyp1f1_series(a, b, x)             # <<<<<<<<<<<<<<
 * 
 *     return hyp1f1_wrap(a, b, x)
 */
    __pyx_r = __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1_series(__pyx_v_a, __pyx_v_b, __pyx_v_x);
    goto __pyx_L0;

    /* "_hypergeometric.pxd":67
 *         return hyp1f1_series_track_convergence(a, b, x)
 * 
 *     if b > 0 and (fabs(a) + 1) * fabs(x) < 0.9 * b:             # <<<<<<<<<<<<<<
 *         # For the kth term of the series we are multiplying by
 *         #
 */
  }

  /* "_hypergeometric.pxd":80
 *         return hyp1f1_series(a, b, x)
 * 
 *     return hyp1f1_wrap(a, b, x)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = hyp1f1_wrap(__pyx_v_a, __pyx_v_b, __pyx_v_x);
  goto __pyx_L0;

  /* "_hypergeometric.pxd":43
 * 
 * @cython.cdivision(True)
 * cdef inline double hyp1f1(double a, double b, double x) nogil:             # <<<<<<<<<<<<<<
 *     if npy_isnan(a) or npy_isnan(b) or npy_isnan(x):
 *         return NPY_NAN
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_hypergeometric.pxd":84
 * 
 * @cython.cdivision(True)
 * cdef inline double hyp1f1_series_track_convergence(             # <<<<<<<<<<<<<<
 *     double a,
 *     double b,
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1_series_track_convergence(double __pyx_v_a, double __pyx_v_b, double __pyx_v_x) {
  int __pyx_v_k;
  double __pyx_v_apk;
  double __pyx_v_bpk;
  double __pyx_v_term;
  double __pyx_v_result;
  double __pyx_v_abssum;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_hypergeometric.pxd":94
 *     cdef int k
 *     cdef double apk, bpk
 *     cdef double term = 1             # <<<<<<<<<<<<<<
 *     cdef double result = 1
 *     cdef double abssum = result
 */
  __pyx_v_term = 1.0;

  /* "_hypergeometric.pxd":95
 *     cdef double apk, bpk
 *     cdef double term = 1
 *     cdef double result = 1             # <<<<<<<<<<<<<<
 *     cdef double abssum = result
 *     for k in range(1000):
 */
  __pyx_v_result = 1.0;

  /* "_hypergeometric.pxd":96
 *     cdef double term = 1
 *     cdef double result = 1
 *     cdef double abssum = result             # <<<<<<<<<<<<<<
 *     for k in range(1000):
 *         apk = a + k
 */
  __pyx_v_abssum = __pyx_v_result;

  /* "_hypergeometric.pxd":97
 *     cdef double result = 1
 *     cdef double abssum = result
 *     for k in range(1000):             # <<<<<<<<<<<<<<
 *         apk = a + k
 *         bpk = b + k
 */
  for (__pyx_t_1 = 0; __pyx_t_1 < 0x3E8; __pyx_t_1+=1) {
    __pyx_v_k = __pyx_t_1;

    /* "_hypergeometric.pxd":98
 *     cdef double abssum = result
 *     for k in range(1000):
 *         apk = a + k             # <<<<<<<<<<<<<<
 *         bpk = b + k
 *         if bpk != 0:
 */
    __pyx_v_apk = (__pyx_v_a + __pyx_v_k);

    /* "_hypergeometric.pxd":99
 *     for k in range(1000):
 *         apk = a + k
 *         bpk = b + k             # <<<<<<<<<<<<<<
 *         if bpk != 0:
 *             term *= apk * x / bpk / (k + 1)
 */
    __pyx_v_bpk = (__pyx_v_b + __pyx_v_k);

    /* "_hypergeometric.pxd":100
 *         apk = a + k
 *         bpk = b + k
 *         if bpk != 0:             # <<<<<<<<<<<<<<
 *             term *= apk * x / bpk / (k + 1)
 *         elif apk == 0:
 */
    __pyx_t_2 = ((__pyx_v_bpk != 0.0) != 0);
    if (__pyx_t_2) {

      /* "_hypergeometric.pxd":101
 *         bpk = b + k
 *         if bpk != 0:
 *             term *= apk * x / bpk / (k + 1)             # <<<<<<<<<<<<<<
 *         elif apk == 0:
 *             # The Pochammer symbol in the denominator has become zero,
 */
      __pyx_v_term = (__pyx_v_term * (((__pyx_v_apk * __pyx_v_x) / __pyx_v_bpk) / ((double)(__pyx_v_k + 1))));

      /* "_hypergeometric.pxd":100
 *         apk = a + k
 *         bpk = b + k
 *         if bpk != 0:             # <<<<<<<<<<<<<<
 *             term *= apk * x / bpk / (k + 1)
 *         elif apk == 0:
 */
      goto __pyx_L5;
    }

    /* "_hypergeometric.pxd":102
 *         if bpk != 0:
 *             term *= apk * x / bpk / (k + 1)
 *         elif apk == 0:             # <<<<<<<<<<<<<<
 *             # The Pochammer symbol in the denominator has become zero,
 *             # but we still have the continuation formula DLMF 13.2.5.
 */
    __pyx_t_2 = ((__pyx_v_apk == 0.0) != 0);
    if (__pyx_t_2) {

      /* "_hypergeometric.pxd":105
 *             # The Pochammer symbol in the denominator has become zero,
 *             # but we still have the continuation formula DLMF 13.2.5.
 *             term = 0             # <<<<<<<<<<<<<<
 *         else:
 *             # We hit a pole
 */
      __pyx_v_term = 0.0;

      /* "_hypergeometric.pxd":102
 *         if bpk != 0:
 *             term *= apk * x / bpk / (k + 1)
 *         elif apk == 0:             # <<<<<<<<<<<<<<
 *             # The Pochammer symbol in the denominator has become zero,
 *             # but we still have the continuation formula DLMF 13.2.5.
 */
      goto __pyx_L5;
    }

    /* "_hypergeometric.pxd":108
 *         else:
 *             # We hit a pole
 *             return NPY_NAN             # <<<<<<<<<<<<<<
 *         abssum += fabs(term)
 *         result += term
 */
    /*else*/ {
      __pyx_r = NPY_NAN;
      goto __pyx_L0;
    }
    __pyx_L5:;

    /* "_hypergeometric.pxd":109
 *             # We hit a pole
 *             return NPY_NAN
 *         abssum += fabs(term)             # <<<<<<<<<<<<<<
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):
 */
    __pyx_v_abssum = (__pyx_v_abssum + fabs(__pyx_v_term));

    /* "_hypergeometric.pxd":110
 *             return NPY_NAN
 *         abssum += fabs(term)
 *         result += term             # <<<<<<<<<<<<<<
 *         if fabs(term) <= EPS * fabs(result):
 *             break
 */
    __pyx_v_result = (__pyx_v_result + __pyx_v_term);

    /* "_hypergeometric.pxd":111
 *         abssum += fabs(term)
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):             # <<<<<<<<<<<<<<
 *             break
 *     else:
 */
    __pyx_t_2 = ((fabs(__pyx_v_term) <= (2.220446049250313e-16 * fabs(__pyx_v_result))) != 0);
    if (__pyx_t_2) {

      /* "_hypergeometric.pxd":112
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):
 *             break             # <<<<<<<<<<<<<<
 *     else:
 *         sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 */
      goto __pyx_L4_break;

      /* "_hypergeometric.pxd":111
 *         abssum += fabs(term)
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):             # <<<<<<<<<<<<<<
 *             break
 *     else:
 */
    }
  }
  /*else*/ {

    /* "_hypergeometric.pxd":114
 *             break
 *     else:
 *         sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)             # <<<<<<<<<<<<<<
 *         return NPY_NAN
 * 
 */
    sf_error(((char *)"hyp1f1"), SF_ERROR_NO_RESULT, NULL);

    /* "_hypergeometric.pxd":115
 *     else:
 *         sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 *         return NPY_NAN             # <<<<<<<<<<<<<<
 * 
 *     if k * EPS * abssum <= ACCEPTABLE_RTOL * fabs(result):
 */
    __pyx_r = NPY_NAN;
    goto __pyx_L0;
  }
  __pyx_L4_break:;

  /* "_hypergeometric.pxd":117
 *         return NPY_NAN
 * 
 *     if k * EPS * abssum <= ACCEPTABLE_RTOL * fabs(result):             # <<<<<<<<<<<<<<
 *         return result
 *     sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 */
  __pyx_t_2 = ((((__pyx_v_k * 2.220446049250313e-16) * __pyx_v_abssum) <= (1e-07 * fabs(__pyx_v_result))) != 0);
  if (__pyx_t_2) {

    /* "_hypergeometric.pxd":118
 * 
 *     if k * EPS * abssum <= ACCEPTABLE_RTOL * fabs(result):
 *         return result             # <<<<<<<<<<<<<<
 *     sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 *     return NPY_NAN
 */
    __pyx_r = __pyx_v_result;
    goto __pyx_L0;

    /* "_hypergeometric.pxd":117
 *         return NPY_NAN
 * 
 *     if k * EPS * abssum <= ACCEPTABLE_RTOL * fabs(result):             # <<<<<<<<<<<<<<
 *         return result
 *     sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 */
  }

  /* "_hypergeometric.pxd":119
 *     if k * EPS * abssum <= ACCEPTABLE_RTOL * fabs(result):
 *         return result
 *     sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)             # <<<<<<<<<<<<<<
 *     return NPY_NAN
 * 
 */
  sf_error(((char *)"hyp1f1"), SF_ERROR_NO_RESULT, NULL);

  /* "_hypergeometric.pxd":120
 *         return result
 *     sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 *     return NPY_NAN             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = NPY_NAN;
  goto __pyx_L0;

  /* "_hypergeometric.pxd":84
 * 
 * @cython.cdivision(True)
 * cdef inline double hyp1f1_series_track_convergence(             # <<<<<<<<<<<<<<
 *     double a,
 *     double b,
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_hypergeometric.pxd":124
 * 
 * @cython.cdivision(True)
 * cdef inline double hyp1f1_series(double a, double b, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef int k
 *     cdef double term = 1
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_15_hypergeometric_hyp1f1_series(double __pyx_v_a, double __pyx_v_b, double __pyx_v_x) {
  int __pyx_v_k;
  double __pyx_v_term;
  double __pyx_v_result;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_hypergeometric.pxd":126
 * cdef inline double hyp1f1_series(double a, double b, double x) nogil:
 *     cdef int k
 *     cdef double term = 1             # <<<<<<<<<<<<<<
 *     cdef double result = 1
 *     for k in range(500):
 */
  __pyx_v_term = 1.0;

  /* "_hypergeometric.pxd":127
 *     cdef int k
 *     cdef double term = 1
 *     cdef double result = 1             # <<<<<<<<<<<<<<
 *     for k in range(500):
 *         term *= (a + k) * x / (b + k) / (k + 1)
 */
  __pyx_v_result = 1.0;

  /* "_hypergeometric.pxd":128
 *     cdef double term = 1
 *     cdef double result = 1
 *     for k in range(500):             # <<<<<<<<<<<<<<
 *         term *= (a + k) * x / (b + k) / (k + 1)
 *         result += term
 */
  for (__pyx_t_1 = 0; __pyx_t_1 < 0x1F4; __pyx_t_1+=1) {
    __pyx_v_k = __pyx_t_1;

    /* "_hypergeometric.pxd":129
 *     cdef double result = 1
 *     for k in range(500):
 *         term *= (a + k) * x / (b + k) / (k + 1)             # <<<<<<<<<<<<<<
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):
 */
    __pyx_v_term = (__pyx_v_term * ((((__pyx_v_a + __pyx_v_k) * __pyx_v_x) / (__pyx_v_b + __pyx_v_k)) / ((double)(__pyx_v_k + 1))));

    /* "_hypergeometric.pxd":130
 *     for k in range(500):
 *         term *= (a + k) * x / (b + k) / (k + 1)
 *         result += term             # <<<<<<<<<<<<<<
 *         if fabs(term) <= EPS * fabs(result):
 *             break
 */
    __pyx_v_result = (__pyx_v_result + __pyx_v_term);

    /* "_hypergeometric.pxd":131
 *         term *= (a + k) * x / (b + k) / (k + 1)
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):             # <<<<<<<<<<<<<<
 *             break
 *     else:
 */
    __pyx_t_2 = ((fabs(__pyx_v_term) <= (2.220446049250313e-16 * fabs(__pyx_v_result))) != 0);
    if (__pyx_t_2) {

      /* "_hypergeometric.pxd":132
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):
 *             break             # <<<<<<<<<<<<<<
 *     else:
 *         sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 */
      goto __pyx_L4_break;

      /* "_hypergeometric.pxd":131
 *         term *= (a + k) * x / (b + k) / (k + 1)
 *         result += term
 *         if fabs(term) <= EPS * fabs(result):             # <<<<<<<<<<<<<<
 *             break
 *     else:
 */
    }
  }
  /*else*/ {

    /* "_hypergeometric.pxd":134
 *             break
 *     else:
 *         sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)             # <<<<<<<<<<<<<<
 *         result = NPY_NAN
 *     return result
 */
    sf_error(((char *)"hyp1f1"), SF_ERROR_NO_RESULT, NULL);

    /* "_hypergeometric.pxd":135
 *     else:
 *         sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 *         result = NPY_NAN             # <<<<<<<<<<<<<<
 *     return result
 */
    __pyx_v_result = NPY_NAN;
  }
  __pyx_L4_break:;

  /* "_hypergeometric.pxd":136
 *         sf_error.error("hyp1f1", sf_error.NO_RESULT, NULL)
 *         result = NPY_NAN
 *     return result             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "_hypergeometric.pxd":124
 * 
 * @cython.cdivision(True)
 * cdef inline double hyp1f1_series(double a, double b, double x) nogil:             # <<<<<<<<<<<<<<
 *     cdef int k
 *     cdef double term = 1
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_digamma.pxd":39
 * 
 * 
 * cdef inline double digamma(double z) nogil:             # <<<<<<<<<<<<<<
 *     """Wrap Cephes' psi to take advantage of the series expansion around
 *     the smallest negative zero.
 */

static CYTHON_INLINE double __pyx_f_5scipy_7special_8_digamma_digamma(double __pyx_v_z) {
  double __pyx_r;
  int __pyx_t_1;

  /* "_digamma.pxd":44
 * 
 *     """
 *     if zabs(z - negroot) < 0.3:             # <<<<<<<<<<<<<<
 *         return zeta_series(z, negroot, negrootval)
 *     else:
 */
  __pyx_t_1 = ((__pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zabs((__pyx_v_z - -0.5040830082644554)) < 0.3) != 0);
  if (__pyx_t_1) {

    /* "_digamma.pxd":45
 *     """
 *     if zabs(z - negroot) < 0.3:
 *         return zeta_series(z, negroot, negrootval)             # <<<<<<<<<<<<<<
 *     else:
 *         return psi(z)
 */
    __pyx_r = __pyx_fuse_0__pyx_f_5scipy_7special_8_digamma_zeta_series(__pyx_v_z, -0.5040830082644554, 7.289763902976895e-17);
    goto __pyx_L0;

    /* "_digamma.pxd":44
 * 
 *     """
 *     if zabs(z - negroot) < 0.3:             # <<<<<<<<<<<<<<
 *         return zeta_series(z, negroot, negrootval)
 *     else:
 */
  }

  /* "_digamma.pxd":47
 *         return zeta_series(z, negroot, negrootval)
 *     else:
 *         return psi(z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_r = psi(__pyx_v_z);
    goto __pyx_L0;
  }

  /* "_digamma.pxd":39
 * 
 * 
 * cdef inline double digamma(double z) nogil:             # <<<<<<<<<<<<<<
 *     """Wrap Cephes' psi to take advantage of the series expansion around
 *     the smallest negative zero.
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_digamma.pxd":51
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cdigamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Compute the digamma function for complex arguments. The strategy
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_cdigamma(__pyx_t_double_complex __pyx_v_z) {
  int __pyx_v_n;
  double __pyx_v_absz;
  __pyx_t_double_complex __pyx_v_res;
  __pyx_t_double_complex __pyx_v_init;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_digamma.pxd":69
 *     cdef:
 *         int n
 *         double absz = zabs(z)             # <<<<<<<<<<<<<<
 *         double complex res = 0
 *         double complex init
 */
  __pyx_v_absz = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z);

  /* "_digamma.pxd":70
 *         int n
 *         double absz = zabs(z)
 *         double complex res = 0             # <<<<<<<<<<<<<<
 *         double complex init
 * 
 */
  __pyx_v_res = __pyx_t_double_complex_from_parts(0, 0);

  /* "_digamma.pxd":73
 *         double complex init
 * 
 *     if z.real <= 0 and ceil(z.real) == z:             # <<<<<<<<<<<<<<
 *         # Poles
 *         sf_error.error("digamma", sf_error.SINGULAR, NULL)
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) <= 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__Pyx_c_eq_double(__pyx_t_double_complex_from_parts(ceil(__Pyx_CREAL(__pyx_v_z)), 0), __pyx_v_z)) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_digamma.pxd":75
 *     if z.real <= 0 and ceil(z.real) == z:
 *         # Poles
 *         sf_error.error("digamma", sf_error.SINGULAR, NULL)             # <<<<<<<<<<<<<<
 *         return nan + 1j*nan
 *     elif zabs(z - negroot) < 0.3:
 */
    sf_error(((char *)"digamma"), SF_ERROR_SINGULAR, NULL);

    /* "_digamma.pxd":76
 *         # Poles
 *         sf_error.error("digamma", sf_error.SINGULAR, NULL)
 *         return nan + 1j*nan             # <<<<<<<<<<<<<<
 *     elif zabs(z - negroot) < 0.3:
 *         # First negative root
 */
    __pyx_r = __Pyx_c_sum_double(__pyx_t_double_complex_from_parts(NPY_NAN, 0), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_NAN, 0)));
    goto __pyx_L0;

    /* "_digamma.pxd":73
 *         double complex init
 * 
 *     if z.real <= 0 and ceil(z.real) == z:             # <<<<<<<<<<<<<<
 *         # Poles
 *         sf_error.error("digamma", sf_error.SINGULAR, NULL)
 */
  }

  /* "_digamma.pxd":77
 *         sf_error.error("digamma", sf_error.SINGULAR, NULL)
 *         return nan + 1j*nan
 *     elif zabs(z - negroot) < 0.3:             # <<<<<<<<<<<<<<
 *         # First negative root
 *         return zeta_series(z, negroot, negrootval)
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(-0.5040830082644554, 0))) < 0.3) != 0);
  if (__pyx_t_1) {

    /* "_digamma.pxd":79
 *     elif zabs(z - negroot) < 0.3:
 *         # First negative root
 *         return zeta_series(z, negroot, negrootval)             # <<<<<<<<<<<<<<
 * 
 *     if z.real < 0 and fabs(z.imag) < smallabsz:
 */
    __pyx_r = __pyx_fuse_1__pyx_f_5scipy_7special_8_digamma_zeta_series(__pyx_v_z, -0.5040830082644554, 7.289763902976895e-17);
    goto __pyx_L0;

    /* "_digamma.pxd":77
 *         sf_error.error("digamma", sf_error.SINGULAR, NULL)
 *         return nan + 1j*nan
 *     elif zabs(z - negroot) < 0.3:             # <<<<<<<<<<<<<<
 *         # First negative root
 *         return zeta_series(z, negroot, negrootval)
 */
  }

  /* "_digamma.pxd":81
 *         return zeta_series(z, negroot, negrootval)
 * 
 *     if z.real < 0 and fabs(z.imag) < smallabsz:             # <<<<<<<<<<<<<<
 *         # Reflection formula for digamma. See
 *         #
 */
  __pyx_t_2 = ((__Pyx_CREAL(__pyx_v_z) < 0.0) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L7_bool_binop_done;
  }
  __pyx_t_2 = ((fabs(__Pyx_CIMAG(__pyx_v_z)) < 16.0) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_1) {

    /* "_digamma.pxd":86
 *         # https://dlmf.nist.gov/5.5#E4
 *         #
 *         res -= M_PI*cospi(z)/sinpi(z)             # <<<<<<<<<<<<<<
 *         z = 1 - z
 *         absz = zabs(z)
 */
    __pyx_v_res = __Pyx_c_diff_double(__pyx_v_res, __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(M_PI, 0), __pyx_fuse_1__pyx_f_5scipy_7special_5_trig_cospi(__pyx_v_z)), __pyx_fuse_1__pyx_f_5scipy_7special_5_trig_sinpi(__pyx_v_z)));

    /* "_digamma.pxd":87
 *         #
 *         res -= M_PI*cospi(z)/sinpi(z)
 *         z = 1 - z             # <<<<<<<<<<<<<<
 *         absz = zabs(z)
 * 
 */
    __pyx_v_z = __Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_z);

    /* "_digamma.pxd":88
 *         res -= M_PI*cospi(z)/sinpi(z)
 *         z = 1 - z
 *         absz = zabs(z)             # <<<<<<<<<<<<<<
 * 
 *     if absz < 0.5:
 */
    __pyx_v_absz = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z);

    /* "_digamma.pxd":81
 *         return zeta_series(z, negroot, negrootval)
 * 
 *     if z.real < 0 and fabs(z.imag) < smallabsz:             # <<<<<<<<<<<<<<
 *         # Reflection formula for digamma. See
 *         #
 */
  }

  /* "_digamma.pxd":90
 *         absz = zabs(z)
 * 
 *     if absz < 0.5:             # <<<<<<<<<<<<<<
 *         # Use one step of the recurrence relation to step away from
 *         # the pole.
 */
  __pyx_t_1 = ((__pyx_v_absz < 0.5) != 0);
  if (__pyx_t_1) {

    /* "_digamma.pxd":93
 *         # Use one step of the recurrence relation to step away from
 *         # the pole.
 *         res -= 1/z             # <<<<<<<<<<<<<<
 *         z += 1
 *         absz = zabs(z)
 */
    __pyx_v_res = __Pyx_c_diff_double(__pyx_v_res, __Pyx_c_quot_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_z));

    /* "_digamma.pxd":94
 *         # the pole.
 *         res -= 1/z
 *         z += 1             # <<<<<<<<<<<<<<
 *         absz = zabs(z)
 * 
 */
    __pyx_v_z = __Pyx_c_sum_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0));

    /* "_digamma.pxd":95
 *         res -= 1/z
 *         z += 1
 *         absz = zabs(z)             # <<<<<<<<<<<<<<
 * 
 *     if zabs(z - posroot) < 0.5:
 */
    __pyx_v_absz = __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z);

    /* "_digamma.pxd":90
 *         absz = zabs(z)
 * 
 *     if absz < 0.5:             # <<<<<<<<<<<<<<
 *         # Use one step of the recurrence relation to step away from
 *         # the pole.
 */
  }

  /* "_digamma.pxd":97
 *         absz = zabs(z)
 * 
 *     if zabs(z - posroot) < 0.5:             # <<<<<<<<<<<<<<
 *         res += zeta_series(z, posroot, posrootval)
 *     elif absz > smallabsz:
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1.4616321449683622, 0))) < 0.5) != 0);
  if (__pyx_t_1) {

    /* "_digamma.pxd":98
 * 
 *     if zabs(z - posroot) < 0.5:
 *         res += zeta_series(z, posroot, posrootval)             # <<<<<<<<<<<<<<
 *     elif absz > smallabsz:
 *         res += asymptotic_series(z)
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __pyx_fuse_1__pyx_f_5scipy_7special_8_digamma_zeta_series(__pyx_v_z, 1.4616321449683622, -9.241265521729427e-17));

    /* "_digamma.pxd":97
 *         absz = zabs(z)
 * 
 *     if zabs(z - posroot) < 0.5:             # <<<<<<<<<<<<<<
 *         res += zeta_series(z, posroot, posrootval)
 *     elif absz > smallabsz:
 */
    goto __pyx_L10;
  }

  /* "_digamma.pxd":99
 *     if zabs(z - posroot) < 0.5:
 *         res += zeta_series(z, posroot, posrootval)
 *     elif absz > smallabsz:             # <<<<<<<<<<<<<<
 *         res += asymptotic_series(z)
 *     elif z.real >= 0:
 */
  __pyx_t_1 = ((__pyx_v_absz > 16.0) != 0);
  if (__pyx_t_1) {

    /* "_digamma.pxd":100
 *         res += zeta_series(z, posroot, posrootval)
 *     elif absz > smallabsz:
 *         res += asymptotic_series(z)             # <<<<<<<<<<<<<<
 *     elif z.real >= 0:
 *         n = <int>(smallabsz - absz) + 1
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __pyx_f_5scipy_7special_8_digamma_asymptotic_series(__pyx_v_z));

    /* "_digamma.pxd":99
 *     if zabs(z - posroot) < 0.5:
 *         res += zeta_series(z, posroot, posrootval)
 *     elif absz > smallabsz:             # <<<<<<<<<<<<<<
 *         res += asymptotic_series(z)
 *     elif z.real >= 0:
 */
    goto __pyx_L10;
  }

  /* "_digamma.pxd":101
 *     elif absz > smallabsz:
 *         res += asymptotic_series(z)
 *     elif z.real >= 0:             # <<<<<<<<<<<<<<
 *         n = <int>(smallabsz - absz) + 1
 *         init = asymptotic_series(z + n)
 */
  __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) >= 0.0) != 0);
  if (__pyx_t_1) {

    /* "_digamma.pxd":102
 *         res += asymptotic_series(z)
 *     elif z.real >= 0:
 *         n = <int>(smallabsz - absz) + 1             # <<<<<<<<<<<<<<
 *         init = asymptotic_series(z + n)
 *         res += backward_recurrence(z + n, init, n)
 */
    __pyx_v_n = (((int)(16.0 - __pyx_v_absz)) + 1);

    /* "_digamma.pxd":103
 *     elif z.real >= 0:
 *         n = <int>(smallabsz - absz) + 1
 *         init = asymptotic_series(z + n)             # <<<<<<<<<<<<<<
 *         res += backward_recurrence(z + n, init, n)
 *     else:
 */
    __pyx_v_init = __pyx_f_5scipy_7special_8_digamma_asymptotic_series(__Pyx_c_sum_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_n, 0)));

    /* "_digamma.pxd":104
 *         n = <int>(smallabsz - absz) + 1
 *         init = asymptotic_series(z + n)
 *         res += backward_recurrence(z + n, init, n)             # <<<<<<<<<<<<<<
 *     else:
 *         # z.real < 0, absz < smallabsz, and z.imag > smallimag
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __pyx_f_5scipy_7special_8_digamma_backward_recurrence(__Pyx_c_sum_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_n, 0)), __pyx_v_init, __pyx_v_n));

    /* "_digamma.pxd":101
 *     elif absz > smallabsz:
 *         res += asymptotic_series(z)
 *     elif z.real >= 0:             # <<<<<<<<<<<<<<
 *         n = <int>(smallabsz - absz) + 1
 *         init = asymptotic_series(z + n)
 */
    goto __pyx_L10;
  }

  /* "_digamma.pxd":107
 *     else:
 *         # z.real < 0, absz < smallabsz, and z.imag > smallimag
 *         n = <int>(smallabsz - absz) - 1             # <<<<<<<<<<<<<<
 *         init = asymptotic_series(z - n)
 *         res += forward_recurrence(z - n, init, n)
 */
  /*else*/ {
    __pyx_v_n = (((int)(16.0 - __pyx_v_absz)) - 1);

    /* "_digamma.pxd":108
 *         # z.real < 0, absz < smallabsz, and z.imag > smallimag
 *         n = <int>(smallabsz - absz) - 1
 *         init = asymptotic_series(z - n)             # <<<<<<<<<<<<<<
 *         res += forward_recurrence(z - n, init, n)
 *     return res
 */
    __pyx_v_init = __pyx_f_5scipy_7special_8_digamma_asymptotic_series(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_n, 0)));

    /* "_digamma.pxd":109
 *         n = <int>(smallabsz - absz) - 1
 *         init = asymptotic_series(z - n)
 *         res += forward_recurrence(z - n, init, n)             # <<<<<<<<<<<<<<
 *     return res
 * 
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __pyx_f_5scipy_7special_8_digamma_forward_recurrence(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_n, 0)), __pyx_v_init, __pyx_v_n));
  }
  __pyx_L10:;

  /* "_digamma.pxd":110
 *         init = asymptotic_series(z - n)
 *         res += forward_recurrence(z - n, init, n)
 *     return res             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_digamma.pxd":51
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cdigamma(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Compute the digamma function for complex arguments. The strategy
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_digamma.pxd":114
 * 
 * @cython.cdivision(True)
 * cdef inline double complex forward_recurrence(double complex z,             # <<<<<<<<<<<<<<
 *                                               double complex psiz,
 *                                                int n) nogil:
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_forward_recurrence(__pyx_t_double_complex __pyx_v_z, __pyx_t_double_complex __pyx_v_psiz, int __pyx_v_n) {
  int __pyx_v_k;
  __pyx_t_double_complex __pyx_v_res;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;

  /* "_digamma.pxd":128
 *     cdef:
 *         int k
 *         double complex res = psiz             # <<<<<<<<<<<<<<
 * 
 *     for k in range(n):
 */
  __pyx_v_res = __pyx_v_psiz;

  /* "_digamma.pxd":130
 *         double complex res = psiz
 * 
 *     for k in range(n):             # <<<<<<<<<<<<<<
 *         res += 1/(z + k)
 *     return res
 */
  __pyx_t_1 = __pyx_v_n;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_k = __pyx_t_3;

    /* "_digamma.pxd":131
 * 
 *     for k in range(n):
 *         res += 1/(z + k)             # <<<<<<<<<<<<<<
 *     return res
 * 
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __Pyx_c_quot_double(__pyx_t_double_complex_from_parts(1, 0), __Pyx_c_sum_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_k, 0))));
  }

  /* "_digamma.pxd":132
 *     for k in range(n):
 *         res += 1/(z + k)
 *     return res             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_digamma.pxd":114
 * 
 * @cython.cdivision(True)
 * cdef inline double complex forward_recurrence(double complex z,             # <<<<<<<<<<<<<<
 *                                               double complex psiz,
 *                                                int n) nogil:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_digamma.pxd":136
 * 
 * @cython.cdivision(True)
 * cdef inline double complex backward_recurrence(double complex z,             # <<<<<<<<<<<<<<
 *                                                double complex psiz,
 *                                                int n) nogil:
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_backward_recurrence(__pyx_t_double_complex __pyx_v_z, __pyx_t_double_complex __pyx_v_psiz, int __pyx_v_n) {
  int __pyx_v_k;
  __pyx_t_double_complex __pyx_v_res;
  __pyx_t_double_complex __pyx_r;
  long __pyx_t_1;
  long __pyx_t_2;
  int __pyx_t_3;

  /* "_digamma.pxd":146
 *     cdef:
 *         int k
 *         double complex res = psiz             # <<<<<<<<<<<<<<
 * 
 *     for k in range(1, n + 1):
 */
  __pyx_v_res = __pyx_v_psiz;

  /* "_digamma.pxd":148
 *         double complex res = psiz
 * 
 *     for k in range(1, n + 1):             # <<<<<<<<<<<<<<
 *         res -= 1/(z - k)
 *     return res
 */
  __pyx_t_1 = (__pyx_v_n + 1);
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 1; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_v_k = __pyx_t_3;

    /* "_digamma.pxd":149
 * 
 *     for k in range(1, n + 1):
 *         res -= 1/(z - k)             # <<<<<<<<<<<<<<
 *     return res
 * 
 */
    __pyx_v_res = __Pyx_c_diff_double(__pyx_v_res, __Pyx_c_quot_double(__pyx_t_double_complex_from_parts(1, 0), __Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_k, 0))));
  }

  /* "_digamma.pxd":150
 *     for k in range(1, n + 1):
 *         res -= 1/(z - k)
 *     return res             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_digamma.pxd":136
 * 
 * @cython.cdivision(True)
 * cdef inline double complex backward_recurrence(double complex z,             # <<<<<<<<<<<<<<
 *                                                double complex psiz,
 *                                                int n) nogil:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_digamma.pxd":154
 * 
 * @cython.cdivision(True)
 * cdef inline double complex asymptotic_series(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Evaluate digamma using an asymptotic series. See
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_8_digamma_asymptotic_series(__pyx_t_double_complex __pyx_v_z) {
  int __pyx_v_k;
  double *__pyx_v_bernoulli2k;
  __pyx_t_double_complex __pyx_v_rzz;
  __pyx_t_double_complex __pyx_v_zfac;
  __pyx_t_double_complex __pyx_v_term;
  __pyx_t_double_complex __pyx_v_res;
  __pyx_t_double_complex __pyx_r;
  double __pyx_t_1[16];
  int __pyx_t_2;
  int __pyx_t_3;

  /* "_digamma.pxd":162
 *     """
 *     cdef:
 *         int k = 1             # <<<<<<<<<<<<<<
 *         # The Bernoulli numbers B_2k for 1 <= k <= 16.
 *         double *bernoulli2k = [
 */
  __pyx_v_k = 1;

  /* "_digamma.pxd":164
 *         int k = 1
 *         # The Bernoulli numbers B_2k for 1 <= k <= 16.
 *         double *bernoulli2k = [             # <<<<<<<<<<<<<<
 *             0.166666666666666667, -0.0333333333333333333,
 *             0.0238095238095238095, -0.0333333333333333333,
 */
  __pyx_t_1[0] = 0.166666666666666667;
  __pyx_t_1[1] = -0.0333333333333333333;
  __pyx_t_1[2] = 0.0238095238095238095;
  __pyx_t_1[3] = -0.0333333333333333333;
  __pyx_t_1[4] = 0.0757575757575757576;
  __pyx_t_1[5] = -0.253113553113553114;
  __pyx_t_1[6] = 1.16666666666666667;
  __pyx_t_1[7] = -7.09215686274509804;
  __pyx_t_1[8] = 54.9711779448621554;
  __pyx_t_1[9] = -529.124242424242424;
  __pyx_t_1[10] = 6192.12318840579710;
  __pyx_t_1[11] = -86580.2531135531136;
  __pyx_t_1[12] = 1425517.16666666667;
  __pyx_t_1[13] = -27298231.0678160920;
  __pyx_t_1[14] = 601580873.900642368;
  __pyx_t_1[15] = -15116315767.0921569;
  __pyx_v_bernoulli2k = __pyx_t_1;

  /* "_digamma.pxd":173
 *             1425517.16666666667, -27298231.0678160920,
 *             601580873.900642368, -15116315767.0921569]
 *         double complex rzz = 1/z/z             # <<<<<<<<<<<<<<
 *         double complex zfac = 1
 *         double complex term
 */
  __pyx_v_rzz = __Pyx_c_quot_double(__Pyx_c_quot_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_z), __pyx_v_z);

  /* "_digamma.pxd":174
 *             601580873.900642368, -15116315767.0921569]
 *         double complex rzz = 1/z/z
 *         double complex zfac = 1             # <<<<<<<<<<<<<<
 *         double complex term
 *         double complex res
 */
  __pyx_v_zfac = __pyx_t_double_complex_from_parts(1, 0);

  /* "_digamma.pxd":178
 *         double complex res
 * 
 *     res = zlog(z) - 0.5/z             # <<<<<<<<<<<<<<
 *     for k in range(1, 17):
 *         zfac *= rzz
 */
  __pyx_v_res = __Pyx_c_diff_double(__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_z), __Pyx_c_quot_double(__pyx_t_double_complex_from_parts(0.5, 0), __pyx_v_z));

  /* "_digamma.pxd":179
 * 
 *     res = zlog(z) - 0.5/z
 *     for k in range(1, 17):             # <<<<<<<<<<<<<<
 *         zfac *= rzz
 *         term = -bernoulli2k[k-1]*zfac/(2*k)
 */
  for (__pyx_t_2 = 1; __pyx_t_2 < 17; __pyx_t_2+=1) {
    __pyx_v_k = __pyx_t_2;

    /* "_digamma.pxd":180
 *     res = zlog(z) - 0.5/z
 *     for k in range(1, 17):
 *         zfac *= rzz             # <<<<<<<<<<<<<<
 *         term = -bernoulli2k[k-1]*zfac/(2*k)
 *         res += term
 */
    __pyx_v_zfac = __Pyx_c_prod_double(__pyx_v_zfac, __pyx_v_rzz);

    /* "_digamma.pxd":181
 *     for k in range(1, 17):
 *         zfac *= rzz
 *         term = -bernoulli2k[k-1]*zfac/(2*k)             # <<<<<<<<<<<<<<
 *         res += term
 *         if zabs(term) < tol*zabs(res):
 */
    __pyx_v_term = __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts((-(__pyx_v_bernoulli2k[(__pyx_v_k - 1)])), 0), __pyx_v_zfac), __pyx_t_double_complex_from_parts((2 * __pyx_v_k), 0));

    /* "_digamma.pxd":182
 *         zfac *= rzz
 *         term = -bernoulli2k[k-1]*zfac/(2*k)
 *         res += term             # <<<<<<<<<<<<<<
 *         if zabs(term) < tol*zabs(res):
 *             break
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __pyx_v_term);

    /* "_digamma.pxd":183
 *         term = -bernoulli2k[k-1]*zfac/(2*k)
 *         res += term
 *         if zabs(term) < tol*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    __pyx_t_3 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term) < (2.220446092504131e-16 * __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_res))) != 0);
    if (__pyx_t_3) {

      /* "_digamma.pxd":184
 *         res += term
 *         if zabs(term) < tol*zabs(res):
 *             break             # <<<<<<<<<<<<<<
 *     return res
 * 
 */
      goto __pyx_L4_break;

      /* "_digamma.pxd":183
 *         term = -bernoulli2k[k-1]*zfac/(2*k)
 *         res += term
 *         if zabs(term) < tol*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    }
  }
  __pyx_L4_break:;

  /* "_digamma.pxd":185
 *         if zabs(term) < tol*zabs(res):
 *             break
 *     return res             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_digamma.pxd":154
 * 
 * @cython.cdivision(True)
 * cdef inline double complex asymptotic_series(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Evaluate digamma using an asymptotic series. See
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_digamma.pxd":188
 * 
 * 
 * cdef inline number_t zeta_series(number_t z, double root, double rootval) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     The coefficients of the Taylor series for digamma at any point can
 */

static CYTHON_INLINE double __pyx_fuse_0__pyx_f_5scipy_7special_8_digamma_zeta_series(double __pyx_v_z, double __pyx_v_root, double __pyx_v_rootval) {
  int __pyx_v_n;
  double __pyx_v_res;
  double __pyx_v_coeff;
  double __pyx_v_term;
  double __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_digamma.pxd":200
 *     cdef:
 *         int n
 *         number_t res = rootval             # <<<<<<<<<<<<<<
 *         number_t coeff = -1
 *         number_t term
 */
  __pyx_v_res = __pyx_v_rootval;

  /* "_digamma.pxd":201
 *         int n
 *         number_t res = rootval
 *         number_t coeff = -1             # <<<<<<<<<<<<<<
 *         number_t term
 * 
 */
  __pyx_v_coeff = -1.0;

  /* "_digamma.pxd":204
 *         number_t term
 * 
 *     z = z - root             # <<<<<<<<<<<<<<
 *     for n in range(1, 100):
 *         coeff *= -z
 */
  __pyx_v_z = (__pyx_v_z - __pyx_v_root);

  /* "_digamma.pxd":205
 * 
 *     z = z - root
 *     for n in range(1, 100):             # <<<<<<<<<<<<<<
 *         coeff *= -z
 *         term = coeff*zeta(n + 1, root)
 */
  for (__pyx_t_1 = 1; __pyx_t_1 < 0x64; __pyx_t_1+=1) {
    __pyx_v_n = __pyx_t_1;

    /* "_digamma.pxd":206
 *     z = z - root
 *     for n in range(1, 100):
 *         coeff *= -z             # <<<<<<<<<<<<<<
 *         term = coeff*zeta(n + 1, root)
 *         res += term
 */
    __pyx_v_coeff = (__pyx_v_coeff * (-__pyx_v_z));

    /* "_digamma.pxd":207
 *     for n in range(1, 100):
 *         coeff *= -z
 *         term = coeff*zeta(n + 1, root)             # <<<<<<<<<<<<<<
 *         res += term
 *         if zabs(term) < tol*zabs(res):
 */
    __pyx_v_term = (__pyx_v_coeff * zeta((__pyx_v_n + 1), __pyx_v_root));

    /* "_digamma.pxd":208
 *         coeff *= -z
 *         term = coeff*zeta(n + 1, root)
 *         res += term             # <<<<<<<<<<<<<<
 *         if zabs(term) < tol*zabs(res):
 *             break
 */
    __pyx_v_res = (__pyx_v_res + __pyx_v_term);

    /* "_digamma.pxd":209
 *         term = coeff*zeta(n + 1, root)
 *         res += term
 *         if zabs(term) < tol*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    __pyx_t_2 = ((__pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term) < (2.220446092504131e-16 * __pyx_fuse_0__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_res))) != 0);
    if (__pyx_t_2) {

      /* "_digamma.pxd":210
 *         res += term
 *         if zabs(term) < tol*zabs(res):
 *             break             # <<<<<<<<<<<<<<
 *     return res
 */
      goto __pyx_L4_break;

      /* "_digamma.pxd":209
 *         term = coeff*zeta(n + 1, root)
 *         res += term
 *         if zabs(term) < tol*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    }
  }
  __pyx_L4_break:;

  /* "_digamma.pxd":211
 *         if zabs(term) < tol*zabs(res):
 *             break
 *     return res             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_digamma.pxd":188
 * 
 * 
 * cdef inline number_t zeta_series(number_t z, double root, double rootval) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     The coefficients of the Taylor series for digamma at any point can
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static CYTHON_INLINE __pyx_t_double_complex __pyx_fuse_1__pyx_f_5scipy_7special_8_digamma_zeta_series(__pyx_t_double_complex __pyx_v_z, double __pyx_v_root, double __pyx_v_rootval) {
  int __pyx_v_n;
  __pyx_t_double_complex __pyx_v_res;
  __pyx_t_double_complex __pyx_v_coeff;
  __pyx_t_double_complex __pyx_v_term;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_digamma.pxd":200
 *     cdef:
 *         int n
 *         number_t res = rootval             # <<<<<<<<<<<<<<
 *         number_t coeff = -1
 *         number_t term
 */
  __pyx_v_res = __pyx_t_double_complex_from_parts(__pyx_v_rootval, 0);

  /* "_digamma.pxd":201
 *         int n
 *         number_t res = rootval
 *         number_t coeff = -1             # <<<<<<<<<<<<<<
 *         number_t term
 * 
 */
  __pyx_v_coeff = __pyx_t_double_complex_from_parts(-1L, 0);

  /* "_digamma.pxd":204
 *         number_t term
 * 
 *     z = z - root             # <<<<<<<<<<<<<<
 *     for n in range(1, 100):
 *         coeff *= -z
 */
  __pyx_v_z = __Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(__pyx_v_root, 0));

  /* "_digamma.pxd":205
 * 
 *     z = z - root
 *     for n in range(1, 100):             # <<<<<<<<<<<<<<
 *         coeff *= -z
 *         term = coeff*zeta(n + 1, root)
 */
  for (__pyx_t_1 = 1; __pyx_t_1 < 0x64; __pyx_t_1+=1) {
    __pyx_v_n = __pyx_t_1;

    /* "_digamma.pxd":206
 *     z = z - root
 *     for n in range(1, 100):
 *         coeff *= -z             # <<<<<<<<<<<<<<
 *         term = coeff*zeta(n + 1, root)
 *         res += term
 */
    __pyx_v_coeff = __Pyx_c_prod_double(__pyx_v_coeff, __Pyx_c_neg_double(__pyx_v_z));

    /* "_digamma.pxd":207
 *     for n in range(1, 100):
 *         coeff *= -z
 *         term = coeff*zeta(n + 1, root)             # <<<<<<<<<<<<<<
 *         res += term
 *         if zabs(term) < tol*zabs(res):
 */
    __pyx_v_term = __Pyx_c_prod_double(__pyx_v_coeff, __pyx_t_double_complex_from_parts(zeta((__pyx_v_n + 1), __pyx_v_root), 0));

    /* "_digamma.pxd":208
 *         coeff *= -z
 *         term = coeff*zeta(n + 1, root)
 *         res += term             # <<<<<<<<<<<<<<
 *         if zabs(term) < tol*zabs(res):
 *             break
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __pyx_v_term);

    /* "_digamma.pxd":209
 *         term = coeff*zeta(n + 1, root)
 *         res += term
 *         if zabs(term) < tol*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    __pyx_t_2 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term) < (2.220446092504131e-16 * __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_res))) != 0);
    if (__pyx_t_2) {

      /* "_digamma.pxd":210
 *         res += term
 *         if zabs(term) < tol*zabs(res):
 *             break             # <<<<<<<<<<<<<<
 *     return res
 */
      goto __pyx_L4_break;

      /* "_digamma.pxd":209
 *         term = coeff*zeta(n + 1, root)
 *         res += term
 *         if zabs(term) < tol*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     return res
 */
    }
  }
  __pyx_L4_break:;

  /* "_digamma.pxd":211
 *         if zabs(term) < tol*zabs(res):
 *             break
 *     return res             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_digamma.pxd":188
 * 
 * 
 * cdef inline number_t zeta_series(number_t z, double root, double rootval) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     The coefficients of the Taylor series for digamma at any point can
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_sici.pxd":30
 * 
 * 
 * cdef inline double complex zexpi(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     r = cexpi_wrap(npy_cdouble_from_double_complex(z))
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_5_sici_zexpi(__pyx_t_double_complex __pyx_v_z) {
  npy_cdouble __pyx_v_r;
  __pyx_t_double_complex __pyx_r;

  /* "_sici.pxd":32
 * cdef inline double complex zexpi(double complex z) nogil:
 *     cdef np.npy_cdouble r
 *     r = cexpi_wrap(npy_cdouble_from_double_complex(z))             # <<<<<<<<<<<<<<
 *     return double_complex_from_npy_cdouble(r)
 * 
 */
  __pyx_v_r = cexpi_wrap(__pyx_f_5scipy_7special_13_complexstuff_npy_cdouble_from_double_complex(__pyx_v_z));

  /* "_sici.pxd":33
 *     cdef np.npy_cdouble r
 *     r = cexpi_wrap(npy_cdouble_from_double_complex(z))
 *     return double_complex_from_npy_cdouble(r)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_f_5scipy_7special_13_complexstuff_double_complex_from_npy_cdouble(__pyx_v_r);
  goto __pyx_L0;

  /* "_sici.pxd":30
 * 
 * 
 * cdef inline double complex zexpi(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     cdef np.npy_cdouble r
 *     r = cexpi_wrap(npy_cdouble_from_double_complex(z))
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_sici.pxd":37
 * 
 * @cython.cdivision(True)
 * cdef inline void power_series(int sgn, double complex z,             # <<<<<<<<<<<<<<
 *                              double complex *s, double complex *c) nogil:
 *     """DLMF 6.6.5 and 6.6.6. If sgn = -1 computes si/ci, and if sgn = 1
 */

static CYTHON_INLINE void __pyx_f_5scipy_7special_5_sici_power_series(int __pyx_v_sgn, __pyx_t_double_complex __pyx_v_z, __pyx_t_double_complex *__pyx_v_s, __pyx_t_double_complex *__pyx_v_c) {
  int __pyx_v_n;
  __pyx_t_double_complex __pyx_v_fac;
  __pyx_t_double_complex __pyx_v_term1;
  __pyx_t_double_complex __pyx_v_term2;
  int __pyx_t_1;
  long __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;

  /* "_sici.pxd":47
 *         double complex fac, term1, term2
 * 
 *     fac = z             # <<<<<<<<<<<<<<
 *     s[0] = fac
 *     c[0] = 0
 */
  __pyx_v_fac = __pyx_v_z;

  /* "_sici.pxd":48
 * 
 *     fac = z
 *     s[0] = fac             # <<<<<<<<<<<<<<
 *     c[0] = 0
 *     for n in range(1, MAXITER):
 */
  (__pyx_v_s[0]) = __pyx_v_fac;

  /* "_sici.pxd":49
 *     fac = z
 *     s[0] = fac
 *     c[0] = 0             # <<<<<<<<<<<<<<
 *     for n in range(1, MAXITER):
 *         fac *= sgn*z/(2*n)
 */
  (__pyx_v_c[0]) = __pyx_t_double_complex_from_parts(0, 0);

  /* "_sici.pxd":50
 *     s[0] = fac
 *     c[0] = 0
 *     for n in range(1, MAXITER):             # <<<<<<<<<<<<<<
 *         fac *= sgn*z/(2*n)
 *         term2 = fac/(2*n)
 */
  for (__pyx_t_1 = 1; __pyx_t_1 < 0x64; __pyx_t_1+=1) {
    __pyx_v_n = __pyx_t_1;

    /* "_sici.pxd":51
 *     c[0] = 0
 *     for n in range(1, MAXITER):
 *         fac *= sgn*z/(2*n)             # <<<<<<<<<<<<<<
 *         term2 = fac/(2*n)
 *         c[0] += term2
 */
    __pyx_v_fac = __Pyx_c_prod_double(__pyx_v_fac, __Pyx_c_quot_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(__pyx_v_sgn, 0), __pyx_v_z), __pyx_t_double_complex_from_parts((2 * __pyx_v_n), 0)));

    /* "_sici.pxd":52
 *     for n in range(1, MAXITER):
 *         fac *= sgn*z/(2*n)
 *         term2 = fac/(2*n)             # <<<<<<<<<<<<<<
 *         c[0] += term2
 *         fac *= z/(2*n + 1)
 */
    __pyx_v_term2 = __Pyx_c_quot_double(__pyx_v_fac, __pyx_t_double_complex_from_parts((2 * __pyx_v_n), 0));

    /* "_sici.pxd":53
 *         fac *= sgn*z/(2*n)
 *         term2 = fac/(2*n)
 *         c[0] += term2             # <<<<<<<<<<<<<<
 *         fac *= z/(2*n + 1)
 *         term1 = fac/(2*n + 1)
 */
    __pyx_t_2 = 0;
    (__pyx_v_c[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_c[__pyx_t_2]), __pyx_v_term2);

    /* "_sici.pxd":54
 *         term2 = fac/(2*n)
 *         c[0] += term2
 *         fac *= z/(2*n + 1)             # <<<<<<<<<<<<<<
 *         term1 = fac/(2*n + 1)
 *         s[0] += term1
 */
    __pyx_v_fac = __Pyx_c_prod_double(__pyx_v_fac, __Pyx_c_quot_double(__pyx_v_z, __pyx_t_double_complex_from_parts(((2 * __pyx_v_n) + 1), 0)));

    /* "_sici.pxd":55
 *         c[0] += term2
 *         fac *= z/(2*n + 1)
 *         term1 = fac/(2*n + 1)             # <<<<<<<<<<<<<<
 *         s[0] += term1
 *         if zabs(term1) < TOL*zabs(s[0]) and zabs(term2) < TOL*zabs(c[0]):
 */
    __pyx_v_term1 = __Pyx_c_quot_double(__pyx_v_fac, __pyx_t_double_complex_from_parts(((2 * __pyx_v_n) + 1), 0));

    /* "_sici.pxd":56
 *         fac *= z/(2*n + 1)
 *         term1 = fac/(2*n + 1)
 *         s[0] += term1             # <<<<<<<<<<<<<<
 *         if zabs(term1) < TOL*zabs(s[0]) and zabs(term2) < TOL*zabs(c[0]):
 *             break
 */
    __pyx_t_2 = 0;
    (__pyx_v_s[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_s[__pyx_t_2]), __pyx_v_term1);

    /* "_sici.pxd":57
 *         term1 = fac/(2*n + 1)
 *         s[0] += term1
 *         if zabs(term1) < TOL*zabs(s[0]) and zabs(term2) < TOL*zabs(c[0]):             # <<<<<<<<<<<<<<
 *             break
 * 
 */
    __pyx_t_4 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term1) < (2.220446092504131e-16 * __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs((__pyx_v_s[0])))) != 0);
    if (__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_4 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term2) < (2.220446092504131e-16 * __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs((__pyx_v_c[0])))) != 0);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_3) {

      /* "_sici.pxd":58
 *         s[0] += term1
 *         if zabs(term1) < TOL*zabs(s[0]) and zabs(term2) < TOL*zabs(c[0]):
 *             break             # <<<<<<<<<<<<<<
 * 
 * 
 */
      goto __pyx_L4_break;

      /* "_sici.pxd":57
 *         term1 = fac/(2*n + 1)
 *         s[0] += term1
 *         if zabs(term1) < TOL*zabs(s[0]) and zabs(term2) < TOL*zabs(c[0]):             # <<<<<<<<<<<<<<
 *             break
 * 
 */
    }
  }
  __pyx_L4_break:;

  /* "_sici.pxd":37
 * 
 * @cython.cdivision(True)
 * cdef inline void power_series(int sgn, double complex z,             # <<<<<<<<<<<<<<
 *                              double complex *s, double complex *c) nogil:
 *     """DLMF 6.6.5 and 6.6.6. If sgn = -1 computes si/ci, and if sgn = 1
 */

  /* function exit code */
}

/* "_sici.pxd":61
 * 
 * 
 * cdef inline int csici(double complex z,             # <<<<<<<<<<<<<<
 *                       double complex *si, double complex *ci) nogil:
 *     """Compute sin/cos integrals at complex arguments. The algorithm
 */

static CYTHON_INLINE int __pyx_f_5scipy_7special_5_sici_csici(__pyx_t_double_complex __pyx_v_z, __pyx_t_double_complex *__pyx_v_si, __pyx_t_double_complex *__pyx_v_ci) {
  __pyx_t_double_complex __pyx_v_jz;
  __pyx_t_double_complex __pyx_v_term1;
  __pyx_t_double_complex __pyx_v_term2;
  int __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;

  /* "_sici.pxd":69
 *     cdef double complex jz, term1, term2
 * 
 *     if z == inf:             # <<<<<<<<<<<<<<
 *         si[0] = NPY_PI_2
 *         ci[0] = 0
 */
  __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(NPY_INFINITY, 0))) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":70
 * 
 *     if z == inf:
 *         si[0] = NPY_PI_2             # <<<<<<<<<<<<<<
 *         ci[0] = 0
 *         return 0
 */
    (__pyx_v_si[0]) = __pyx_t_double_complex_from_parts(NPY_PI_2, 0);

    /* "_sici.pxd":71
 *     if z == inf:
 *         si[0] = NPY_PI_2
 *         ci[0] = 0             # <<<<<<<<<<<<<<
 *         return 0
 *     elif z == -inf:
 */
    (__pyx_v_ci[0]) = __pyx_t_double_complex_from_parts(0, 0);

    /* "_sici.pxd":72
 *         si[0] = NPY_PI_2
 *         ci[0] = 0
 *         return 0             # <<<<<<<<<<<<<<
 *     elif z == -inf:
 *         si[0] = -NPY_PI_2
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "_sici.pxd":69
 *     cdef double complex jz, term1, term2
 * 
 *     if z == inf:             # <<<<<<<<<<<<<<
 *         si[0] = NPY_PI_2
 *         ci[0] = 0
 */
  }

  /* "_sici.pxd":73
 *         ci[0] = 0
 *         return 0
 *     elif z == -inf:             # <<<<<<<<<<<<<<
 *         si[0] = -NPY_PI_2
 *         ci[0] = 1j*NPY_PI
 */
  __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts((-NPY_INFINITY), 0))) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":74
 *         return 0
 *     elif z == -inf:
 *         si[0] = -NPY_PI_2             # <<<<<<<<<<<<<<
 *         ci[0] = 1j*NPY_PI
 *         return 0
 */
    (__pyx_v_si[0]) = __pyx_t_double_complex_from_parts((-NPY_PI_2), 0);

    /* "_sici.pxd":75
 *     elif z == -inf:
 *         si[0] = -NPY_PI_2
 *         ci[0] = 1j*NPY_PI             # <<<<<<<<<<<<<<
 *         return 0
 *     elif zabs(z) < 0.8:
 */
    (__pyx_v_ci[0]) = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_PI, 0));

    /* "_sici.pxd":76
 *         si[0] = -NPY_PI_2
 *         ci[0] = 1j*NPY_PI
 *         return 0             # <<<<<<<<<<<<<<
 *     elif zabs(z) < 0.8:
 *         # Use the series to avoid cancellation in si
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "_sici.pxd":73
 *         ci[0] = 0
 *         return 0
 *     elif z == -inf:             # <<<<<<<<<<<<<<
 *         si[0] = -NPY_PI_2
 *         ci[0] = 1j*NPY_PI
 */
  }

  /* "_sici.pxd":77
 *         ci[0] = 1j*NPY_PI
 *         return 0
 *     elif zabs(z) < 0.8:             # <<<<<<<<<<<<<<
 *         # Use the series to avoid cancellation in si
 *         power_series(-1, z, si, ci)
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z) < 0.8) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":79
 *     elif zabs(z) < 0.8:
 *         # Use the series to avoid cancellation in si
 *         power_series(-1, z, si, ci)             # <<<<<<<<<<<<<<
 *         if z == 0:
 *             sf_error.error("sici", sf_error.DOMAIN, NULL)
 */
    __pyx_f_5scipy_7special_5_sici_power_series(-1, __pyx_v_z, __pyx_v_si, __pyx_v_ci);

    /* "_sici.pxd":80
 *         # Use the series to avoid cancellation in si
 *         power_series(-1, z, si, ci)
 *         if z == 0:             # <<<<<<<<<<<<<<
 *             sf_error.error("sici", sf_error.DOMAIN, NULL)
 *             ci[0] = zpack(-inf, nan)
 */
    __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(0, 0))) != 0);
    if (__pyx_t_1) {

      /* "_sici.pxd":81
 *         power_series(-1, z, si, ci)
 *         if z == 0:
 *             sf_error.error("sici", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *             ci[0] = zpack(-inf, nan)
 *         else:
 */
      sf_error(((char *)"sici"), SF_ERROR_DOMAIN, NULL);

      /* "_sici.pxd":82
 *         if z == 0:
 *             sf_error.error("sici", sf_error.DOMAIN, NULL)
 *             ci[0] = zpack(-inf, nan)             # <<<<<<<<<<<<<<
 *         else:
 *             ci[0] += NPY_EULER + zlog(z)
 */
      (__pyx_v_ci[0]) = __pyx_f_5scipy_7special_13_complexstuff_zpack((-NPY_INFINITY), NPY_NAN);

      /* "_sici.pxd":80
 *         # Use the series to avoid cancellation in si
 *         power_series(-1, z, si, ci)
 *         if z == 0:             # <<<<<<<<<<<<<<
 *             sf_error.error("sici", sf_error.DOMAIN, NULL)
 *             ci[0] = zpack(-inf, nan)
 */
      goto __pyx_L4;
    }

    /* "_sici.pxd":84
 *             ci[0] = zpack(-inf, nan)
 *         else:
 *             ci[0] += NPY_EULER + zlog(z)             # <<<<<<<<<<<<<<
 *         return 0
 * 
 */
    /*else*/ {
      __pyx_t_2 = 0;
      (__pyx_v_ci[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_ci[__pyx_t_2]), __Pyx_c_sum_double(__pyx_t_double_complex_from_parts(NPY_EULER, 0), __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_z)));
    }
    __pyx_L4:;

    /* "_sici.pxd":85
 *         else:
 *             ci[0] += NPY_EULER + zlog(z)
 *         return 0             # <<<<<<<<<<<<<<
 * 
 *     # DLMF 6.5.5/6.5.6 plus DLMF 6.4.4/6.4.6/6.4.7
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "_sici.pxd":77
 *         ci[0] = 1j*NPY_PI
 *         return 0
 *     elif zabs(z) < 0.8:             # <<<<<<<<<<<<<<
 *         # Use the series to avoid cancellation in si
 *         power_series(-1, z, si, ci)
 */
  }

  /* "_sici.pxd":88
 * 
 *     # DLMF 6.5.5/6.5.6 plus DLMF 6.4.4/6.4.6/6.4.7
 *     jz = 1j*z             # <<<<<<<<<<<<<<
 *     term1 = zexpi(jz)
 *     term2 = zexpi(-jz)
 */
  __pyx_v_jz = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_v_z);

  /* "_sici.pxd":89
 *     # DLMF 6.5.5/6.5.6 plus DLMF 6.4.4/6.4.6/6.4.7
 *     jz = 1j*z
 *     term1 = zexpi(jz)             # <<<<<<<<<<<<<<
 *     term2 = zexpi(-jz)
 *     si[0] = -0.5j*(term1 - term2)
 */
  __pyx_v_term1 = __pyx_f_5scipy_7special_5_sici_zexpi(__pyx_v_jz);

  /* "_sici.pxd":90
 *     jz = 1j*z
 *     term1 = zexpi(jz)
 *     term2 = zexpi(-jz)             # <<<<<<<<<<<<<<
 *     si[0] = -0.5j*(term1 - term2)
 *     ci[0] = 0.5*(term1 + term2)
 */
  __pyx_v_term2 = __pyx_f_5scipy_7special_5_sici_zexpi(__Pyx_c_neg_double(__pyx_v_jz));

  /* "_sici.pxd":91
 *     term1 = zexpi(jz)
 *     term2 = zexpi(-jz)
 *     si[0] = -0.5j*(term1 - term2)             # <<<<<<<<<<<<<<
 *     ci[0] = 0.5*(term1 + term2)
 *     if z.real == 0:
 */
  (__pyx_v_si[0]) = __Pyx_c_prod_double(__Pyx_c_neg_double(__pyx_t_double_complex_from_parts(0, 0.5)), __Pyx_c_diff_double(__pyx_v_term1, __pyx_v_term2));

  /* "_sici.pxd":92
 *     term2 = zexpi(-jz)
 *     si[0] = -0.5j*(term1 - term2)
 *     ci[0] = 0.5*(term1 + term2)             # <<<<<<<<<<<<<<
 *     if z.real == 0:
 *         if z.imag > 0:
 */
  (__pyx_v_ci[0]) = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_sum_double(__pyx_v_term1, __pyx_v_term2));

  /* "_sici.pxd":93
 *     si[0] = -0.5j*(term1 - term2)
 *     ci[0] = 0.5*(term1 + term2)
 *     if z.real == 0:             # <<<<<<<<<<<<<<
 *         if z.imag > 0:
 *             ci[0] += 1j*NPY_PI_2
 */
  __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) == 0.0) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":94
 *     ci[0] = 0.5*(term1 + term2)
 *     if z.real == 0:
 *         if z.imag > 0:             # <<<<<<<<<<<<<<
 *             ci[0] += 1j*NPY_PI_2
 *         elif z.imag < 0:
 */
    __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) > 0.0) != 0);
    if (__pyx_t_1) {

      /* "_sici.pxd":95
 *     if z.real == 0:
 *         if z.imag > 0:
 *             ci[0] += 1j*NPY_PI_2             # <<<<<<<<<<<<<<
 *         elif z.imag < 0:
 *             ci[0] -= 1j*NPY_PI_2
 */
      __pyx_t_2 = 0;
      (__pyx_v_ci[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_ci[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_PI_2, 0)));

      /* "_sici.pxd":94
 *     ci[0] = 0.5*(term1 + term2)
 *     if z.real == 0:
 *         if z.imag > 0:             # <<<<<<<<<<<<<<
 *             ci[0] += 1j*NPY_PI_2
 *         elif z.imag < 0:
 */
      goto __pyx_L6;
    }

    /* "_sici.pxd":96
 *         if z.imag > 0:
 *             ci[0] += 1j*NPY_PI_2
 *         elif z.imag < 0:             # <<<<<<<<<<<<<<
 *             ci[0] -= 1j*NPY_PI_2
 *     elif z.real > 0:
 */
    __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) < 0.0) != 0);
    if (__pyx_t_1) {

      /* "_sici.pxd":97
 *             ci[0] += 1j*NPY_PI_2
 *         elif z.imag < 0:
 *             ci[0] -= 1j*NPY_PI_2             # <<<<<<<<<<<<<<
 *     elif z.real > 0:
 *         si[0] -= NPY_PI_2
 */
      __pyx_t_2 = 0;
      (__pyx_v_ci[__pyx_t_2]) = __Pyx_c_diff_double((__pyx_v_ci[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_PI_2, 0)));

      /* "_sici.pxd":96
 *         if z.imag > 0:
 *             ci[0] += 1j*NPY_PI_2
 *         elif z.imag < 0:             # <<<<<<<<<<<<<<
 *             ci[0] -= 1j*NPY_PI_2
 *     elif z.real > 0:
 */
    }
    __pyx_L6:;

    /* "_sici.pxd":93
 *     si[0] = -0.5j*(term1 - term2)
 *     ci[0] = 0.5*(term1 + term2)
 *     if z.real == 0:             # <<<<<<<<<<<<<<
 *         if z.imag > 0:
 *             ci[0] += 1j*NPY_PI_2
 */
    goto __pyx_L5;
  }

  /* "_sici.pxd":98
 *         elif z.imag < 0:
 *             ci[0] -= 1j*NPY_PI_2
 *     elif z.real > 0:             # <<<<<<<<<<<<<<
 *         si[0] -= NPY_PI_2
 *     else:
 */
  __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) > 0.0) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":99
 *             ci[0] -= 1j*NPY_PI_2
 *     elif z.real > 0:
 *         si[0] -= NPY_PI_2             # <<<<<<<<<<<<<<
 *     else:
 *         si[0] += NPY_PI_2
 */
    __pyx_t_2 = 0;
    (__pyx_v_si[__pyx_t_2]) = __Pyx_c_diff_double((__pyx_v_si[__pyx_t_2]), __pyx_t_double_complex_from_parts(NPY_PI_2, 0));

    /* "_sici.pxd":98
 *         elif z.imag < 0:
 *             ci[0] -= 1j*NPY_PI_2
 *     elif z.real > 0:             # <<<<<<<<<<<<<<
 *         si[0] -= NPY_PI_2
 *     else:
 */
    goto __pyx_L5;
  }

  /* "_sici.pxd":101
 *         si[0] -= NPY_PI_2
 *     else:
 *         si[0] += NPY_PI_2             # <<<<<<<<<<<<<<
 *         if z.imag >= 0:
 *             ci[0] += 1j*NPY_PI
 */
  /*else*/ {
    __pyx_t_2 = 0;
    (__pyx_v_si[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_si[__pyx_t_2]), __pyx_t_double_complex_from_parts(NPY_PI_2, 0));

    /* "_sici.pxd":102
 *     else:
 *         si[0] += NPY_PI_2
 *         if z.imag >= 0:             # <<<<<<<<<<<<<<
 *             ci[0] += 1j*NPY_PI
 *         else:
 */
    __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) >= 0.0) != 0);
    if (__pyx_t_1) {

      /* "_sici.pxd":103
 *         si[0] += NPY_PI_2
 *         if z.imag >= 0:
 *             ci[0] += 1j*NPY_PI             # <<<<<<<<<<<<<<
 *         else:
 *             ci[0] -= 1j*NPY_PI
 */
      __pyx_t_2 = 0;
      (__pyx_v_ci[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_ci[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_PI, 0)));

      /* "_sici.pxd":102
 *     else:
 *         si[0] += NPY_PI_2
 *         if z.imag >= 0:             # <<<<<<<<<<<<<<
 *             ci[0] += 1j*NPY_PI
 *         else:
 */
      goto __pyx_L7;
    }

    /* "_sici.pxd":105
 *             ci[0] += 1j*NPY_PI
 *         else:
 *             ci[0] -= 1j*NPY_PI             # <<<<<<<<<<<<<<
 * 
 *     return 0
 */
    /*else*/ {
      __pyx_t_2 = 0;
      (__pyx_v_ci[__pyx_t_2]) = __Pyx_c_diff_double((__pyx_v_ci[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_PI, 0)));
    }
    __pyx_L7:;
  }
  __pyx_L5:;

  /* "_sici.pxd":107
 *             ci[0] -= 1j*NPY_PI
 * 
 *     return 0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "_sici.pxd":61
 * 
 * 
 * cdef inline int csici(double complex z,             # <<<<<<<<<<<<<<
 *                       double complex *si, double complex *ci) nogil:
 *     """Compute sin/cos integrals at complex arguments. The algorithm
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_sici.pxd":110
 * 
 * 
 * cdef inline int cshichi(double complex z,             # <<<<<<<<<<<<<<
 *                         double complex *shi, double complex *chi) nogil:
 *     """Compute sinh/cosh integrals at complex arguments. The algorithm
 */

static CYTHON_INLINE int __pyx_f_5scipy_7special_5_sici_cshichi(__pyx_t_double_complex __pyx_v_z, __pyx_t_double_complex *__pyx_v_shi, __pyx_t_double_complex *__pyx_v_chi) {
  __pyx_t_double_complex __pyx_v_term1;
  __pyx_t_double_complex __pyx_v_term2;
  int __pyx_r;
  int __pyx_t_1;
  long __pyx_t_2;

  /* "_sici.pxd":118
 *     cdef double complex term1, term2
 * 
 *     if z == inf:             # <<<<<<<<<<<<<<
 *         shi[0] = inf
 *         chi[0] = inf
 */
  __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(NPY_INFINITY, 0))) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":119
 * 
 *     if z == inf:
 *         shi[0] = inf             # <<<<<<<<<<<<<<
 *         chi[0] = inf
 *         return 0
 */
    (__pyx_v_shi[0]) = __pyx_t_double_complex_from_parts(NPY_INFINITY, 0);

    /* "_sici.pxd":120
 *     if z == inf:
 *         shi[0] = inf
 *         chi[0] = inf             # <<<<<<<<<<<<<<
 *         return 0
 *     elif z == -inf:
 */
    (__pyx_v_chi[0]) = __pyx_t_double_complex_from_parts(NPY_INFINITY, 0);

    /* "_sici.pxd":121
 *         shi[0] = inf
 *         chi[0] = inf
 *         return 0             # <<<<<<<<<<<<<<
 *     elif z == -inf:
 *         shi[0] = -inf
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "_sici.pxd":118
 *     cdef double complex term1, term2
 * 
 *     if z == inf:             # <<<<<<<<<<<<<<
 *         shi[0] = inf
 *         chi[0] = inf
 */
  }

  /* "_sici.pxd":122
 *         chi[0] = inf
 *         return 0
 *     elif z == -inf:             # <<<<<<<<<<<<<<
 *         shi[0] = -inf
 *         chi[0] = inf
 */
  __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts((-NPY_INFINITY), 0))) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":123
 *         return 0
 *     elif z == -inf:
 *         shi[0] = -inf             # <<<<<<<<<<<<<<
 *         chi[0] = inf
 *         return 0
 */
    (__pyx_v_shi[0]) = __pyx_t_double_complex_from_parts((-NPY_INFINITY), 0);

    /* "_sici.pxd":124
 *     elif z == -inf:
 *         shi[0] = -inf
 *         chi[0] = inf             # <<<<<<<<<<<<<<
 *         return 0
 *     elif zabs(z) < 0.8:
 */
    (__pyx_v_chi[0]) = __pyx_t_double_complex_from_parts(NPY_INFINITY, 0);

    /* "_sici.pxd":125
 *         shi[0] = -inf
 *         chi[0] = inf
 *         return 0             # <<<<<<<<<<<<<<
 *     elif zabs(z) < 0.8:
 *         # Use the series to avoid cancellation in shi
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "_sici.pxd":122
 *         chi[0] = inf
 *         return 0
 *     elif z == -inf:             # <<<<<<<<<<<<<<
 *         shi[0] = -inf
 *         chi[0] = inf
 */
  }

  /* "_sici.pxd":126
 *         chi[0] = inf
 *         return 0
 *     elif zabs(z) < 0.8:             # <<<<<<<<<<<<<<
 *         # Use the series to avoid cancellation in shi
 *         power_series(1, z, shi, chi)
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z) < 0.8) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":128
 *     elif zabs(z) < 0.8:
 *         # Use the series to avoid cancellation in shi
 *         power_series(1, z, shi, chi)             # <<<<<<<<<<<<<<
 *         if z == 0:
 *             sf_error.error("shichi", sf_error.DOMAIN, NULL)
 */
    __pyx_f_5scipy_7special_5_sici_power_series(1, __pyx_v_z, __pyx_v_shi, __pyx_v_chi);

    /* "_sici.pxd":129
 *         # Use the series to avoid cancellation in shi
 *         power_series(1, z, shi, chi)
 *         if z == 0:             # <<<<<<<<<<<<<<
 *             sf_error.error("shichi", sf_error.DOMAIN, NULL)
 *             chi[0] = zpack(-inf, nan)
 */
    __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(0, 0))) != 0);
    if (__pyx_t_1) {

      /* "_sici.pxd":130
 *         power_series(1, z, shi, chi)
 *         if z == 0:
 *             sf_error.error("shichi", sf_error.DOMAIN, NULL)             # <<<<<<<<<<<<<<
 *             chi[0] = zpack(-inf, nan)
 *         else:
 */
      sf_error(((char *)"shichi"), SF_ERROR_DOMAIN, NULL);

      /* "_sici.pxd":131
 *         if z == 0:
 *             sf_error.error("shichi", sf_error.DOMAIN, NULL)
 *             chi[0] = zpack(-inf, nan)             # <<<<<<<<<<<<<<
 *         else:
 *             chi[0] += NPY_EULER + zlog(z)
 */
      (__pyx_v_chi[0]) = __pyx_f_5scipy_7special_13_complexstuff_zpack((-NPY_INFINITY), NPY_NAN);

      /* "_sici.pxd":129
 *         # Use the series to avoid cancellation in shi
 *         power_series(1, z, shi, chi)
 *         if z == 0:             # <<<<<<<<<<<<<<
 *             sf_error.error("shichi", sf_error.DOMAIN, NULL)
 *             chi[0] = zpack(-inf, nan)
 */
      goto __pyx_L4;
    }

    /* "_sici.pxd":133
 *             chi[0] = zpack(-inf, nan)
 *         else:
 *             chi[0] += NPY_EULER + zlog(z)             # <<<<<<<<<<<<<<
 *         return 0
 * 
 */
    /*else*/ {
      __pyx_t_2 = 0;
      (__pyx_v_chi[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_chi[__pyx_t_2]), __Pyx_c_sum_double(__pyx_t_double_complex_from_parts(NPY_EULER, 0), __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zlog(__pyx_v_z)));
    }
    __pyx_L4:;

    /* "_sici.pxd":134
 *         else:
 *             chi[0] += NPY_EULER + zlog(z)
 *         return 0             # <<<<<<<<<<<<<<
 * 
 *     term1 = zexpi(z)
 */
    __pyx_r = 0;
    goto __pyx_L0;

    /* "_sici.pxd":126
 *         chi[0] = inf
 *         return 0
 *     elif zabs(z) < 0.8:             # <<<<<<<<<<<<<<
 *         # Use the series to avoid cancellation in shi
 *         power_series(1, z, shi, chi)
 */
  }

  /* "_sici.pxd":136
 *         return 0
 * 
 *     term1 = zexpi(z)             # <<<<<<<<<<<<<<
 *     term2 = zexpi(-z)
 *     shi[0] = 0.5*(term1 - term2)
 */
  __pyx_v_term1 = __pyx_f_5scipy_7special_5_sici_zexpi(__pyx_v_z);

  /* "_sici.pxd":137
 * 
 *     term1 = zexpi(z)
 *     term2 = zexpi(-z)             # <<<<<<<<<<<<<<
 *     shi[0] = 0.5*(term1 - term2)
 *     chi[0] = 0.5*(term1 + term2)
 */
  __pyx_v_term2 = __pyx_f_5scipy_7special_5_sici_zexpi(__Pyx_c_neg_double(__pyx_v_z));

  /* "_sici.pxd":138
 *     term1 = zexpi(z)
 *     term2 = zexpi(-z)
 *     shi[0] = 0.5*(term1 - term2)             # <<<<<<<<<<<<<<
 *     chi[0] = 0.5*(term1 + term2)
 *     if z.imag > 0:
 */
  (__pyx_v_shi[0]) = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_diff_double(__pyx_v_term1, __pyx_v_term2));

  /* "_sici.pxd":139
 *     term2 = zexpi(-z)
 *     shi[0] = 0.5*(term1 - term2)
 *     chi[0] = 0.5*(term1 + term2)             # <<<<<<<<<<<<<<
 *     if z.imag > 0:
 *         shi[0] -= 0.5j*NPY_PI
 */
  (__pyx_v_chi[0]) = __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_sum_double(__pyx_v_term1, __pyx_v_term2));

  /* "_sici.pxd":140
 *     shi[0] = 0.5*(term1 - term2)
 *     chi[0] = 0.5*(term1 + term2)
 *     if z.imag > 0:             # <<<<<<<<<<<<<<
 *         shi[0] -= 0.5j*NPY_PI
 *         chi[0] += 0.5j*NPY_PI
 */
  __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) > 0.0) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":141
 *     chi[0] = 0.5*(term1 + term2)
 *     if z.imag > 0:
 *         shi[0] -= 0.5j*NPY_PI             # <<<<<<<<<<<<<<
 *         chi[0] += 0.5j*NPY_PI
 *     elif z.imag < 0:
 */
    __pyx_t_2 = 0;
    (__pyx_v_shi[__pyx_t_2]) = __Pyx_c_diff_double((__pyx_v_shi[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 0.5), __pyx_t_double_complex_from_parts(NPY_PI, 0)));

    /* "_sici.pxd":142
 *     if z.imag > 0:
 *         shi[0] -= 0.5j*NPY_PI
 *         chi[0] += 0.5j*NPY_PI             # <<<<<<<<<<<<<<
 *     elif z.imag < 0:
 *         shi[0] += 0.5j*NPY_PI
 */
    __pyx_t_2 = 0;
    (__pyx_v_chi[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_chi[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 0.5), __pyx_t_double_complex_from_parts(NPY_PI, 0)));

    /* "_sici.pxd":140
 *     shi[0] = 0.5*(term1 - term2)
 *     chi[0] = 0.5*(term1 + term2)
 *     if z.imag > 0:             # <<<<<<<<<<<<<<
 *         shi[0] -= 0.5j*NPY_PI
 *         chi[0] += 0.5j*NPY_PI
 */
    goto __pyx_L5;
  }

  /* "_sici.pxd":143
 *         shi[0] -= 0.5j*NPY_PI
 *         chi[0] += 0.5j*NPY_PI
 *     elif z.imag < 0:             # <<<<<<<<<<<<<<
 *         shi[0] += 0.5j*NPY_PI
 *         chi[0] -= 0.5j*NPY_PI
 */
  __pyx_t_1 = ((__Pyx_CIMAG(__pyx_v_z) < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":144
 *         chi[0] += 0.5j*NPY_PI
 *     elif z.imag < 0:
 *         shi[0] += 0.5j*NPY_PI             # <<<<<<<<<<<<<<
 *         chi[0] -= 0.5j*NPY_PI
 *     elif z.real < 0:
 */
    __pyx_t_2 = 0;
    (__pyx_v_shi[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_shi[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 0.5), __pyx_t_double_complex_from_parts(NPY_PI, 0)));

    /* "_sici.pxd":145
 *     elif z.imag < 0:
 *         shi[0] += 0.5j*NPY_PI
 *         chi[0] -= 0.5j*NPY_PI             # <<<<<<<<<<<<<<
 *     elif z.real < 0:
 *         chi[0] += 1j*NPY_PI
 */
    __pyx_t_2 = 0;
    (__pyx_v_chi[__pyx_t_2]) = __Pyx_c_diff_double((__pyx_v_chi[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 0.5), __pyx_t_double_complex_from_parts(NPY_PI, 0)));

    /* "_sici.pxd":143
 *         shi[0] -= 0.5j*NPY_PI
 *         chi[0] += 0.5j*NPY_PI
 *     elif z.imag < 0:             # <<<<<<<<<<<<<<
 *         shi[0] += 0.5j*NPY_PI
 *         chi[0] -= 0.5j*NPY_PI
 */
    goto __pyx_L5;
  }

  /* "_sici.pxd":146
 *         shi[0] += 0.5j*NPY_PI
 *         chi[0] -= 0.5j*NPY_PI
 *     elif z.real < 0:             # <<<<<<<<<<<<<<
 *         chi[0] += 1j*NPY_PI
 * 
 */
  __pyx_t_1 = ((__Pyx_CREAL(__pyx_v_z) < 0.0) != 0);
  if (__pyx_t_1) {

    /* "_sici.pxd":147
 *         chi[0] -= 0.5j*NPY_PI
 *     elif z.real < 0:
 *         chi[0] += 1j*NPY_PI             # <<<<<<<<<<<<<<
 * 
 *     return 0
 */
    __pyx_t_2 = 0;
    (__pyx_v_chi[__pyx_t_2]) = __Pyx_c_sum_double((__pyx_v_chi[__pyx_t_2]), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0, 1.0), __pyx_t_double_complex_from_parts(NPY_PI, 0)));

    /* "_sici.pxd":146
 *         shi[0] += 0.5j*NPY_PI
 *         chi[0] -= 0.5j*NPY_PI
 *     elif z.real < 0:             # <<<<<<<<<<<<<<
 *         chi[0] += 1j*NPY_PI
 * 
 */
  }
  __pyx_L5:;

  /* "_sici.pxd":149
 *         chi[0] += 1j*NPY_PI
 * 
 *     return 0             # <<<<<<<<<<<<<<
 */
  __pyx_r = 0;
  goto __pyx_L0;

  /* "_sici.pxd":110
 * 
 * 
 * cdef inline int cshichi(double complex z,             # <<<<<<<<<<<<<<
 *                         double complex *shi, double complex *chi) nogil:
 *     """Compute sinh/cosh integrals at complex arguments. The algorithm
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spence.pxd":23
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cspence(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Compute Spence's function for complex arguments. The strategy is:
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_spence_cspence(__pyx_t_double_complex __pyx_v_z) {
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;

  /* "_spence.pxd":35
 * 
 *     """
 *     if zabs(z) < 0.5:             # <<<<<<<<<<<<<<
 *         # This step isn't necessary, but this series converges faster.
 *         return cspence_series0(z)
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_z) < 0.5) != 0);
  if (__pyx_t_1) {

    /* "_spence.pxd":37
 *     if zabs(z) < 0.5:
 *         # This step isn't necessary, but this series converges faster.
 *         return cspence_series0(z)             # <<<<<<<<<<<<<<
 *     elif zabs(1 - z) > 1:
 *         return -cspence_series1(z/(z - 1)) - PISQ_6 - 0.5*zlog1(z - 1)**2
 */
    __pyx_r = __pyx_f_5scipy_7special_7_spence_cspence_series0(__pyx_v_z);
    goto __pyx_L0;

    /* "_spence.pxd":35
 * 
 *     """
 *     if zabs(z) < 0.5:             # <<<<<<<<<<<<<<
 *         # This step isn't necessary, but this series converges faster.
 *         return cspence_series0(z)
 */
  }

  /* "_spence.pxd":38
 *         # This step isn't necessary, but this series converges faster.
 *         return cspence_series0(z)
 *     elif zabs(1 - z) > 1:             # <<<<<<<<<<<<<<
 *         return -cspence_series1(z/(z - 1)) - PISQ_6 - 0.5*zlog1(z - 1)**2
 *     else:
 */
  __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_z)) > 1.0) != 0);
  if (__pyx_t_1) {

    /* "_spence.pxd":39
 *         return cspence_series0(z)
 *     elif zabs(1 - z) > 1:
 *         return -cspence_series1(z/(z - 1)) - PISQ_6 - 0.5*zlog1(z - 1)**2             # <<<<<<<<<<<<<<
 *     else:
 *         return cspence_series1(z)
 */
    __pyx_r = __Pyx_c_diff_double(__Pyx_c_diff_double(__Pyx_c_neg_double(__pyx_f_5scipy_7special_7_spence_cspence_series1(__Pyx_c_quot_double(__pyx_v_z, __Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0))))), __pyx_t_double_complex_from_parts(1.6449340668482264, 0)), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(0.5, 0), __Pyx_c_pow_double(__pyx_f_5scipy_7special_13_complexstuff_zlog1(__Pyx_c_diff_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0))), __pyx_t_double_complex_from_parts(2, 0))));
    goto __pyx_L0;

    /* "_spence.pxd":38
 *         # This step isn't necessary, but this series converges faster.
 *         return cspence_series0(z)
 *     elif zabs(1 - z) > 1:             # <<<<<<<<<<<<<<
 *         return -cspence_series1(z/(z - 1)) - PISQ_6 - 0.5*zlog1(z - 1)**2
 *     else:
 */
  }

  /* "_spence.pxd":41
 *         return -cspence_series1(z/(z - 1)) - PISQ_6 - 0.5*zlog1(z - 1)**2
 *     else:
 *         return cspence_series1(z)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_r = __pyx_f_5scipy_7special_7_spence_cspence_series1(__pyx_v_z);
    goto __pyx_L0;
  }

  /* "_spence.pxd":23
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cspence(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     Compute Spence's function for complex arguments. The strategy is:
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spence.pxd":45
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cspence_series0(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     A series centered at z = 0; see
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_spence_cspence_series0(__pyx_t_double_complex __pyx_v_z) {
  int __pyx_v_n;
  __pyx_t_double_complex __pyx_v_zfac;
  __pyx_t_double_complex __pyx_v_sum1;
  __pyx_t_double_complex __pyx_v_sum2;
  __pyx_t_double_complex __pyx_v_term1;
  __pyx_t_double_complex __pyx_v_term2;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;

  /* "_spence.pxd":54
 *     cdef:
 *         int n
 *         double complex zfac = 1             # <<<<<<<<<<<<<<
 *         double complex sum1 = 0
 *         double complex sum2 = 0
 */
  __pyx_v_zfac = __pyx_t_double_complex_from_parts(1, 0);

  /* "_spence.pxd":55
 *         int n
 *         double complex zfac = 1
 *         double complex sum1 = 0             # <<<<<<<<<<<<<<
 *         double complex sum2 = 0
 *         double complex term1, term2
 */
  __pyx_v_sum1 = __pyx_t_double_complex_from_parts(0, 0);

  /* "_spence.pxd":56
 *         double complex zfac = 1
 *         double complex sum1 = 0
 *         double complex sum2 = 0             # <<<<<<<<<<<<<<
 *         double complex term1, term2
 * 
 */
  __pyx_v_sum2 = __pyx_t_double_complex_from_parts(0, 0);

  /* "_spence.pxd":59
 *         double complex term1, term2
 * 
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         return PISQ_6
 * 
 */
  __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(0, 0))) != 0);
  if (__pyx_t_1) {

    /* "_spence.pxd":60
 * 
 *     if z == 0:
 *         return PISQ_6             # <<<<<<<<<<<<<<
 * 
 *     for n in range(1, 500):
 */
    __pyx_r = __pyx_t_double_complex_from_parts(1.6449340668482264, 0);
    goto __pyx_L0;

    /* "_spence.pxd":59
 *         double complex term1, term2
 * 
 *     if z == 0:             # <<<<<<<<<<<<<<
 *         return PISQ_6
 * 
 */
  }

  /* "_spence.pxd":62
 *         return PISQ_6
 * 
 *     for n in range(1, 500):             # <<<<<<<<<<<<<<
 *         zfac *= z
 *         term1 = zfac/n**2
 */
  for (__pyx_t_2 = 1; __pyx_t_2 < 0x1F4; __pyx_t_2+=1) {
    __pyx_v_n = __pyx_t_2;

    /* "_spence.pxd":63
 * 
 *     for n in range(1, 500):
 *         zfac *= z             # <<<<<<<<<<<<<<
 *         term1 = zfac/n**2
 *         sum1 += term1
 */
    __pyx_v_zfac = __Pyx_c_prod_double(__pyx_v_zfac, __pyx_v_z);

    /* "_spence.pxd":64
 *     for n in range(1, 500):
 *         zfac *= z
 *         term1 = zfac/n**2             # <<<<<<<<<<<<<<
 *         sum1 += term1
 *         term2 = zfac/n
 */
    __pyx_v_term1 = __Pyx_c_quot_double(__pyx_v_zfac, __pyx_t_double_complex_from_parts(__Pyx_pow_long(((long)__pyx_v_n), 2), 0));

    /* "_spence.pxd":65
 *         zfac *= z
 *         term1 = zfac/n**2
 *         sum1 += term1             # <<<<<<<<<<<<<<
 *         term2 = zfac/n
 *         sum2 += term2
 */
    __pyx_v_sum1 = __Pyx_c_sum_double(__pyx_v_sum1, __pyx_v_term1);

    /* "_spence.pxd":66
 *         term1 = zfac/n**2
 *         sum1 += term1
 *         term2 = zfac/n             # <<<<<<<<<<<<<<
 *         sum2 += term2
 *         if zabs(term1) <= TOL*zabs(sum1) and zabs(term2) <= TOL*zabs(sum2):
 */
    __pyx_v_term2 = __Pyx_c_quot_double(__pyx_v_zfac, __pyx_t_double_complex_from_parts(__pyx_v_n, 0));

    /* "_spence.pxd":67
 *         sum1 += term1
 *         term2 = zfac/n
 *         sum2 += term2             # <<<<<<<<<<<<<<
 *         if zabs(term1) <= TOL*zabs(sum1) and zabs(term2) <= TOL*zabs(sum2):
 *             break
 */
    __pyx_v_sum2 = __Pyx_c_sum_double(__pyx_v_sum2, __pyx_v_term2);

    /* "_spence.pxd":68
 *         term2 = zfac/n
 *         sum2 += term2
 *         if zabs(term1) <= TOL*zabs(sum1) and zabs(term2) <= TOL*zabs(sum2):             # <<<<<<<<<<<<<<
 *             break
 *     return PISQ_6 - sum1 + zlog1(z)*sum2
 */
    __pyx_t_3 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term1) <= (2.220446092504131e-16 * __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_sum1))) != 0);
    if (__pyx_t_3) {
    } else {
      __pyx_t_1 = __pyx_t_3;
      goto __pyx_L7_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term2) <= (2.220446092504131e-16 * __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_sum2))) != 0);
    __pyx_t_1 = __pyx_t_3;
    __pyx_L7_bool_binop_done:;
    if (__pyx_t_1) {

      /* "_spence.pxd":69
 *         sum2 += term2
 *         if zabs(term1) <= TOL*zabs(sum1) and zabs(term2) <= TOL*zabs(sum2):
 *             break             # <<<<<<<<<<<<<<
 *     return PISQ_6 - sum1 + zlog1(z)*sum2
 * 
 */
      goto __pyx_L5_break;

      /* "_spence.pxd":68
 *         term2 = zfac/n
 *         sum2 += term2
 *         if zabs(term1) <= TOL*zabs(sum1) and zabs(term2) <= TOL*zabs(sum2):             # <<<<<<<<<<<<<<
 *             break
 *     return PISQ_6 - sum1 + zlog1(z)*sum2
 */
    }
  }
  __pyx_L5_break:;

  /* "_spence.pxd":70
 *         if zabs(term1) <= TOL*zabs(sum1) and zabs(term2) <= TOL*zabs(sum2):
 *             break
 *     return PISQ_6 - sum1 + zlog1(z)*sum2             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __Pyx_c_sum_double(__Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1.6449340668482264, 0), __pyx_v_sum1), __Pyx_c_prod_double(__pyx_f_5scipy_7special_13_complexstuff_zlog1(__pyx_v_z), __pyx_v_sum2));
  goto __pyx_L0;

  /* "_spence.pxd":45
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cspence_series0(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     A series centered at z = 0; see
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* "_spence.pxd":74
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cspence_series1(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     A series centered at z = 1 which enjoys faster convergence than
 */

static CYTHON_INLINE __pyx_t_double_complex __pyx_f_5scipy_7special_7_spence_cspence_series1(__pyx_t_double_complex __pyx_v_z) {
  int __pyx_v_n;
  __pyx_t_double_complex __pyx_v_zfac;
  __pyx_t_double_complex __pyx_v_res;
  __pyx_t_double_complex __pyx_v_term;
  __pyx_t_double_complex __pyx_v_zz;
  __pyx_t_double_complex __pyx_r;
  int __pyx_t_1;
  int __pyx_t_2;

  /* "_spence.pxd":84
 *     cdef:
 *         int n
 *         double complex zfac = 1             # <<<<<<<<<<<<<<
 *         double complex res = 0
 *         double complex term, zz
 */
  __pyx_v_zfac = __pyx_t_double_complex_from_parts(1, 0);

  /* "_spence.pxd":85
 *         int n
 *         double complex zfac = 1
 *         double complex res = 0             # <<<<<<<<<<<<<<
 *         double complex term, zz
 * 
 */
  __pyx_v_res = __pyx_t_double_complex_from_parts(0, 0);

  /* "_spence.pxd":88
 *         double complex term, zz
 * 
 *     if z == 1:             # <<<<<<<<<<<<<<
 *         return 0
 *     z = 1 - z
 */
  __pyx_t_1 = ((__Pyx_c_eq_double(__pyx_v_z, __pyx_t_double_complex_from_parts(1, 0))) != 0);
  if (__pyx_t_1) {

    /* "_spence.pxd":89
 * 
 *     if z == 1:
 *         return 0             # <<<<<<<<<<<<<<
 *     z = 1 - z
 *     zz = z**2
 */
    __pyx_r = __pyx_t_double_complex_from_parts(0, 0);
    goto __pyx_L0;

    /* "_spence.pxd":88
 *         double complex term, zz
 * 
 *     if z == 1:             # <<<<<<<<<<<<<<
 *         return 0
 *     z = 1 - z
 */
  }

  /* "_spence.pxd":90
 *     if z == 1:
 *         return 0
 *     z = 1 - z             # <<<<<<<<<<<<<<
 *     zz = z**2
 *     for n in range(1, 500):
 */
  __pyx_v_z = __Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_z);

  /* "_spence.pxd":91
 *         return 0
 *     z = 1 - z
 *     zz = z**2             # <<<<<<<<<<<<<<
 *     for n in range(1, 500):
 *         zfac *= z
 */
  __pyx_v_zz = __Pyx_c_pow_double(__pyx_v_z, __pyx_t_double_complex_from_parts(2, 0));

  /* "_spence.pxd":92
 *     z = 1 - z
 *     zz = z**2
 *     for n in range(1, 500):             # <<<<<<<<<<<<<<
 *         zfac *= z
 *         # Do the divisions one at a time to guard against overflow
 */
  for (__pyx_t_2 = 1; __pyx_t_2 < 0x1F4; __pyx_t_2+=1) {
    __pyx_v_n = __pyx_t_2;

    /* "_spence.pxd":93
 *     zz = z**2
 *     for n in range(1, 500):
 *         zfac *= z             # <<<<<<<<<<<<<<
 *         # Do the divisions one at a time to guard against overflow
 *         term = ((zfac/n**2)/(n + 1)**2)/(n + 2)**2
 */
    __pyx_v_zfac = __Pyx_c_prod_double(__pyx_v_zfac, __pyx_v_z);

    /* "_spence.pxd":95
 *         zfac *= z
 *         # Do the divisions one at a time to guard against overflow
 *         term = ((zfac/n**2)/(n + 1)**2)/(n + 2)**2             # <<<<<<<<<<<<<<
 *         res += term
 *         if zabs(term) <= TOL*zabs(res):
 */
    __pyx_v_term = __Pyx_c_quot_double(__Pyx_c_quot_double(__Pyx_c_quot_double(__pyx_v_zfac, __pyx_t_double_complex_from_parts(__Pyx_pow_long(((long)__pyx_v_n), 2), 0)), __pyx_t_double_complex_from_parts(__Pyx_pow_long((__pyx_v_n + 1), 2), 0)), __pyx_t_double_complex_from_parts(__Pyx_pow_long((__pyx_v_n + 2), 2), 0));

    /* "_spence.pxd":96
 *         # Do the divisions one at a time to guard against overflow
 *         term = ((zfac/n**2)/(n + 1)**2)/(n + 2)**2
 *         res += term             # <<<<<<<<<<<<<<
 *         if zabs(term) <= TOL*zabs(res):
 *             break
 */
    __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __pyx_v_term);

    /* "_spence.pxd":97
 *         term = ((zfac/n**2)/(n + 1)**2)/(n + 2)**2
 *         res += term
 *         if zabs(term) <= TOL*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     res *= 4*zz
 */
    __pyx_t_1 = ((__pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_term) <= (2.220446092504131e-16 * __pyx_fuse_1__pyx_f_5scipy_7special_13_complexstuff_zabs(__pyx_v_res))) != 0);
    if (__pyx_t_1) {

      /* "_spence.pxd":98
 *         res += term
 *         if zabs(term) <= TOL*zabs(res):
 *             break             # <<<<<<<<<<<<<<
 *     res *= 4*zz
 *     res += 4*z + 5.75*zz + 3*(1 - zz)*zlog1(1 - z)
 */
      goto __pyx_L5_break;

      /* "_spence.pxd":97
 *         term = ((zfac/n**2)/(n + 1)**2)/(n + 2)**2
 *         res += term
 *         if zabs(term) <= TOL*zabs(res):             # <<<<<<<<<<<<<<
 *             break
 *     res *= 4*zz
 */
    }
  }
  __pyx_L5_break:;

  /* "_spence.pxd":99
 *         if zabs(term) <= TOL*zabs(res):
 *             break
 *     res *= 4*zz             # <<<<<<<<<<<<<<
 *     res += 4*z + 5.75*zz + 3*(1 - zz)*zlog1(1 - z)
 *     res /= 1 + 4*z + zz
 */
  __pyx_v_res = __Pyx_c_prod_double(__pyx_v_res, __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(4, 0), __pyx_v_zz));

  /* "_spence.pxd":100
 *             break
 *     res *= 4*zz
 *     res += 4*z + 5.75*zz + 3*(1 - zz)*zlog1(1 - z)             # <<<<<<<<<<<<<<
 *     res /= 1 + 4*z + zz
 *     return res
 */
  __pyx_v_res = __Pyx_c_sum_double(__pyx_v_res, __Pyx_c_sum_double(__Pyx_c_sum_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(4, 0), __pyx_v_z), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(5.75, 0), __pyx_v_zz)), __Pyx_c_prod_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(3, 0), __Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_zz)), __pyx_f_5scipy_7special_13_complexstuff_zlog1(__Pyx_c_diff_double(__pyx_t_double_complex_from_parts(1, 0), __pyx_v_z)))));

  /* "_spence.pxd":101
 *     res *= 4*zz
 *     res += 4*z + 5.75*zz + 3*(1 - zz)*zlog1(1 - z)
 *     res /= 1 + 4*z + zz             # <<<<<<<<<<<<<<
 *     return res
 */
  __pyx_v_res = __Pyx_c_quot_double(__pyx_v_res, __Pyx_c_sum_double(__Pyx_c_sum_double(__pyx_t_double_complex_from_parts(1, 0), __Pyx_c_prod_double(__pyx_t_double_complex_from_parts(4, 0), __pyx_v_z)), __pyx_v_zz));

  /* "_spence.pxd":102
 *     res += 4*z + 5.75*zz + 3*(1 - zz)*zlog1(1 - z)
 *     res /= 1 + 4*z + zz
 *     return res             # <<<<<<<<<<<<<<
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "_spence.pxd":74
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cspence_series1(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     A series centered at z = 1 which enjoys faster convergence than
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

static PyMethodDef __pyx_methods[] = {
  {"voigt_profile", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_9voigt_profile, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_8voigt_profile},
  {"agm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_11agm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_10agm},
  {"bdtrik", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_23bdtrik, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_22bdtrik},
  {"bdtrin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_25bdtrin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_24bdtrin},
  {"bei", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_27bei, METH_O, __pyx_doc_5scipy_7special_14cython_special_26bei},
  {"beip", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_29beip, METH_O, __pyx_doc_5scipy_7special_14cython_special_28beip},
  {"ber", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_31ber, METH_O, __pyx_doc_5scipy_7special_14cython_special_30ber},
  {"berp", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_33berp, METH_O, __pyx_doc_5scipy_7special_14cython_special_32berp},
  {"besselpoly", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_35besselpoly, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_34besselpoly},
  {"beta", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_37beta, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_36beta},
  {"betainc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_39betainc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_38betainc},
  {"betaincinv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_41betaincinv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_40betaincinv},
  {"betaln", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_43betaln, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_42betaln},
  {"binom", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_45binom, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_44binom},
  {"boxcox", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_47boxcox, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_46boxcox},
  {"boxcox1p", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_49boxcox1p, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_48boxcox1p},
  {"btdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_51btdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_50btdtr},
  {"btdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_53btdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_52btdtri},
  {"btdtria", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_55btdtria, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_54btdtria},
  {"btdtrib", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_57btdtrib, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_56btdtrib},
  {"cbrt", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_59cbrt, METH_O, __pyx_doc_5scipy_7special_14cython_special_58cbrt},
  {"chdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_61chdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_60chdtr},
  {"chdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_63chdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_62chdtrc},
  {"chdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_65chdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_64chdtri},
  {"chdtriv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_67chdtriv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_66chdtriv},
  {"chndtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_69chndtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_68chndtr},
  {"chndtridf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_71chndtridf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_70chndtridf},
  {"chndtrinc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_73chndtrinc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_72chndtrinc},
  {"chndtrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_75chndtrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_74chndtrix},
  {"cosdg", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_77cosdg, METH_O, __pyx_doc_5scipy_7special_14cython_special_76cosdg},
  {"cosm1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_79cosm1, METH_O, __pyx_doc_5scipy_7special_14cython_special_78cosm1},
  {"cotdg", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_81cotdg, METH_O, __pyx_doc_5scipy_7special_14cython_special_80cotdg},
  {"ellipe", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_85ellipe, METH_O, __pyx_doc_5scipy_7special_14cython_special_84ellipe},
  {"ellipeinc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_87ellipeinc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_86ellipeinc},
  {"ellipkinc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_91ellipkinc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_90ellipkinc},
  {"ellipkm1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_93ellipkm1, METH_O, __pyx_doc_5scipy_7special_14cython_special_92ellipkm1},
  {"ellipk", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_95ellipk, METH_O, __pyx_doc_5scipy_7special_14cython_special_94ellipk},
  {"entr", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_97entr, METH_O, __pyx_doc_5scipy_7special_14cython_special_96entr},
  {"erfinv", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_107erfinv, METH_O, __pyx_doc_5scipy_7special_14cython_special_106erfinv},
  {"erfcinv", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_109erfcinv, METH_O, __pyx_doc_5scipy_7special_14cython_special_108erfcinv},
  {"eval_hermite", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_123eval_hermite, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_122eval_hermite},
  {"eval_hermitenorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_125eval_hermitenorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_124eval_hermitenorm},
  {"exp10", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_143exp10, METH_O, __pyx_doc_5scipy_7special_14cython_special_142exp10},
  {"exp2", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_145exp2, METH_O, __pyx_doc_5scipy_7special_14cython_special_144exp2},
  {"exprel", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_155exprel, METH_O, __pyx_doc_5scipy_7special_14cython_special_154exprel},
  {"fdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_157fdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_156fdtr},
  {"fdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_159fdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_158fdtrc},
  {"fdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_161fdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_160fdtri},
  {"fdtridfd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_163fdtridfd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_162fdtridfd},
  {"gammainc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_169gammainc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_168gammainc},
  {"gammaincc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_171gammaincc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_170gammaincc},
  {"gammainccinv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_173gammainccinv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_172gammainccinv},
  {"gammaincinv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_175gammaincinv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_174gammaincinv},
  {"gammaln", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_177gammaln, METH_O, __pyx_doc_5scipy_7special_14cython_special_176gammaln},
  {"gammasgn", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_179gammasgn, METH_O, __pyx_doc_5scipy_7special_14cython_special_178gammasgn},
  {"gdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_181gdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_180gdtr},
  {"gdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_183gdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_182gdtrc},
  {"gdtria", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_185gdtria, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_184gdtria},
  {"gdtrib", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_187gdtrib, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_186gdtrib},
  {"gdtrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_189gdtrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_188gdtrix},
  {"hankel1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_191hankel1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_190hankel1},
  {"hankel1e", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_193hankel1e, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_192hankel1e},
  {"hankel2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_195hankel2, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_194hankel2},
  {"hankel2e", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_197hankel2e, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_196hankel2e},
  {"huber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_199huber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_198huber},
  {"hyperu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_207hyperu, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_206hyperu},
  {"i0", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_209i0, METH_O, __pyx_doc_5scipy_7special_14cython_special_208i0},
  {"i0e", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_211i0e, METH_O, __pyx_doc_5scipy_7special_14cython_special_210i0e},
  {"i1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_213i1, METH_O, __pyx_doc_5scipy_7special_14cython_special_212i1},
  {"i1e", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_215i1e, METH_O, __pyx_doc_5scipy_7special_14cython_special_214i1e},
  {"inv_boxcox", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_217inv_boxcox, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_216inv_boxcox},
  {"inv_boxcox1p", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_219inv_boxcox1p, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_218inv_boxcox1p},
  {"it2struve0", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_225it2struve0, METH_O, __pyx_doc_5scipy_7special_14cython_special_224it2struve0},
  {"itmodstruve0", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_233itmodstruve0, METH_O, __pyx_doc_5scipy_7special_14cython_special_232itmodstruve0},
  {"itstruve0", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_235itstruve0, METH_O, __pyx_doc_5scipy_7special_14cython_special_234itstruve0},
  {"j0", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_241j0, METH_O, __pyx_doc_5scipy_7special_14cython_special_240j0},
  {"j1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_243j1, METH_O, __pyx_doc_5scipy_7special_14cython_special_242j1},
  {"k0", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_249k0, METH_O, __pyx_doc_5scipy_7special_14cython_special_248k0},
  {"k0e", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_251k0e, METH_O, __pyx_doc_5scipy_7special_14cython_special_250k0e},
  {"k1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_253k1, METH_O, __pyx_doc_5scipy_7special_14cython_special_252k1},
  {"k1e", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_255k1e, METH_O, __pyx_doc_5scipy_7special_14cython_special_254k1e},
  {"kei", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_257kei, METH_O, __pyx_doc_5scipy_7special_14cython_special_256kei},
  {"keip", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_259keip, METH_O, __pyx_doc_5scipy_7special_14cython_special_258keip},
  {"ker", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_263ker, METH_O, __pyx_doc_5scipy_7special_14cython_special_262ker},
  {"kerp", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_265kerp, METH_O, __pyx_doc_5scipy_7special_14cython_special_264kerp},
  {"kl_div", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_267kl_div, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_266kl_div},
  {"kolmogi", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_271kolmogi, METH_O, __pyx_doc_5scipy_7special_14cython_special_270kolmogi},
  {"kolmogorov", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_273kolmogorov, METH_O, __pyx_doc_5scipy_7special_14cython_special_272kolmogorov},
  {"lpmv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_287lpmv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_286lpmv},
  {"mathieu_a", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_289mathieu_a, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_288mathieu_a},
  {"mathieu_b", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_291mathieu_b, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_290mathieu_b},
  {"modstruve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_309modstruve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_308modstruve},
  {"nbdtrik", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_317nbdtrik, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_316nbdtrik},
  {"nbdtrin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_319nbdtrin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_318nbdtrin},
  {"ncfdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_321ncfdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_320ncfdtr},
  {"ncfdtri", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_323ncfdtri, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_322ncfdtri},
  {"ncfdtridfd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_325ncfdtridfd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_324ncfdtridfd},
  {"ncfdtridfn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_327ncfdtridfn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_326ncfdtridfn},
  {"ncfdtrinc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_329ncfdtrinc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_328ncfdtrinc},
  {"nctdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_331nctdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_330nctdtr},
  {"nctdtridf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_333nctdtridf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_332nctdtridf},
  {"nctdtrinc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_335nctdtrinc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_334nctdtrinc},
  {"nctdtrit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_337nctdtrit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_336nctdtrit},
  {"ndtri", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_341ndtri, METH_O, __pyx_doc_5scipy_7special_14cython_special_340ndtri},
  {"nrdtrimn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_343nrdtrimn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_342nrdtrimn},
  {"nrdtrisd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_345nrdtrisd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_344nrdtrisd},
  {"obl_cv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_351obl_cv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_350obl_cv},
  {"owens_t", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_361owens_t, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_360owens_t},
  {"pdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_369pdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_368pdtr},
  {"pdtrc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_371pdtrc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_370pdtrc},
  {"pdtrik", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_375pdtrik, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_374pdtrik},
  {"poch", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_377poch, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_376poch},
  {"pro_cv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_383pro_cv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_382pro_cv},
  {"pseudo_huber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_393pseudo_huber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_392pseudo_huber},
  {"radian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_397radian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_396radian},
  {"rel_entr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_399rel_entr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_398rel_entr},
  {"round", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_403round, METH_O, __pyx_doc_5scipy_7special_14cython_special_402round},
  {"sindg", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_409sindg, METH_O, __pyx_doc_5scipy_7special_14cython_special_408sindg},
  {"stdtr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_419stdtr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_418stdtr},
  {"stdtridf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_421stdtridf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_420stdtridf},
  {"stdtrit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_423stdtrit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_422stdtrit},
  {"struve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_425struve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_424struve},
  {"tandg", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_427tandg, METH_O, __pyx_doc_5scipy_7special_14cython_special_426tandg},
  {"tklmbda", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_7special_14cython_special_429tklmbda, METH_VARARGS|METH_KEYWORDS, __pyx_doc_5scipy_7special_14cython_special_428tklmbda},
  {"wofz", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_431wofz, METH_O, __pyx_doc_5scipy_7special_14cython_special_430wofz},
  {"y0", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_439y0, METH_O, __pyx_doc_5scipy_7special_14cython_special_438y0},
  {"y1", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_441y1, METH_O, __pyx_doc_5scipy_7special_14cython_special_440y1},
  {"zetac", (PyCFunction)__pyx_pw_5scipy_7special_14cython_special_449zetac, METH_O, __pyx_doc_5scipy_7special_14cython_special_448zetac},
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_cython_special(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_cython_special},
  {0, NULL}
};
#endif

static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    "cython_special",
    __pyx_k_highlight_cython_Cython_API_for, /* m_doc */
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    0, /* m_size */
  #else
    -1, /* m_size */
  #endif
    __pyx_methods /* m_methods */,
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    __pyx_moduledef_slots, /* m_slots */
  #else
    NULL, /* m_reload */
  #endif
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_n_s_DeprecationWarning, __pyx_k_DeprecationWarning, sizeof(__pyx_k_DeprecationWarning), 0, 0, 1, 1},
  {&__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_k_Expected_at_least_d_argument_s_g, sizeof(__pyx_k_Expected_at_least_d_argument_s_g), 0, 0, 1, 0},
  {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0},
  {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0},
  {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0},
  {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
  {&__pyx_n_s_N, __pyx_k_N, sizeof(__pyx_k_N), 0, 0, 1, 1},
  {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0},
  {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0},
  {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
  {&__pyx_n_s_RuntimeWarning, __pyx_k_RuntimeWarning, sizeof(__pyx_k_RuntimeWarning), 0, 0, 1, 1},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_kp_s__17, __pyx_k__17, sizeof(__pyx_k__17), 0, 0, 1, 0},
  {&__pyx_kp_s__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 0, 1, 0},
  {&__pyx_kp_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 0},
  {&__pyx_n_s_airy, __pyx_k_airy, sizeof(__pyx_k_airy), 0, 0, 1, 1},
  {&__pyx_n_s_airy_pywrap, __pyx_k_airy_pywrap, sizeof(__pyx_k_airy_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_airye_pywrap, __pyx_k_airye_pywrap, sizeof(__pyx_k_airye_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
  {&__pyx_n_s_bdtr, __pyx_k_bdtr, sizeof(__pyx_k_bdtr), 0, 0, 1, 1},
  {&__pyx_n_s_bdtrc, __pyx_k_bdtrc, sizeof(__pyx_k_bdtrc), 0, 0, 1, 1},
  {&__pyx_n_s_bdtri, __pyx_k_bdtri, sizeof(__pyx_k_bdtri), 0, 0, 1, 1},
  {&__pyx_n_s_bench_airy_D_cy, __pyx_k_bench_airy_D_cy, sizeof(__pyx_k_bench_airy_D_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_airy_D_py, __pyx_k_bench_airy_D_py, sizeof(__pyx_k_bench_airy_D_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_airy_d_cy, __pyx_k_bench_airy_d_cy, sizeof(__pyx_k_bench_airy_d_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_airy_d_py, __pyx_k_bench_airy_d_py, sizeof(__pyx_k_bench_airy_d_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_beta_dd_cy, __pyx_k_bench_beta_dd_cy, sizeof(__pyx_k_bench_beta_dd_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_beta_dd_py, __pyx_k_bench_beta_dd_py, sizeof(__pyx_k_bench_beta_dd_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_erf_D_cy, __pyx_k_bench_erf_D_cy, sizeof(__pyx_k_bench_erf_D_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_erf_D_py, __pyx_k_bench_erf_D_py, sizeof(__pyx_k_bench_erf_D_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_erf_d_cy, __pyx_k_bench_erf_d_cy, sizeof(__pyx_k_bench_erf_d_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_erf_d_py, __pyx_k_bench_erf_d_py, sizeof(__pyx_k_bench_erf_d_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_exprel_d_cy, __pyx_k_bench_exprel_d_cy, sizeof(__pyx_k_bench_exprel_d_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_exprel_d_py, __pyx_k_bench_exprel_d_py, sizeof(__pyx_k_bench_exprel_d_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_gamma_D_cy, __pyx_k_bench_gamma_D_cy, sizeof(__pyx_k_bench_gamma_D_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_gamma_D_py, __pyx_k_bench_gamma_D_py, sizeof(__pyx_k_bench_gamma_D_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_gamma_d_cy, __pyx_k_bench_gamma_d_cy, sizeof(__pyx_k_bench_gamma_d_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_gamma_d_py, __pyx_k_bench_gamma_d_py, sizeof(__pyx_k_bench_gamma_d_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_jv_dD_cy, __pyx_k_bench_jv_dD_cy, sizeof(__pyx_k_bench_jv_dD_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_jv_dD_py, __pyx_k_bench_jv_dD_py, sizeof(__pyx_k_bench_jv_dD_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_jv_dd_cy, __pyx_k_bench_jv_dd_cy, sizeof(__pyx_k_bench_jv_dd_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_jv_dd_py, __pyx_k_bench_jv_dd_py, sizeof(__pyx_k_bench_jv_dd_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_loggamma_D_cy, __pyx_k_bench_loggamma_D_cy, sizeof(__pyx_k_bench_loggamma_D_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_loggamma_D_py, __pyx_k_bench_loggamma_D_py, sizeof(__pyx_k_bench_loggamma_D_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_logit_d_cy, __pyx_k_bench_logit_d_cy, sizeof(__pyx_k_bench_logit_d_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_logit_d_py, __pyx_k_bench_logit_d_py, sizeof(__pyx_k_bench_logit_d_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_psi_D_cy, __pyx_k_bench_psi_D_cy, sizeof(__pyx_k_bench_psi_D_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_psi_D_py, __pyx_k_bench_psi_D_py, sizeof(__pyx_k_bench_psi_D_py), 0, 0, 1, 1},
  {&__pyx_n_s_bench_psi_d_cy, __pyx_k_bench_psi_d_cy, sizeof(__pyx_k_bench_psi_d_cy), 0, 0, 1, 1},
  {&__pyx_n_s_bench_psi_d_py, __pyx_k_bench_psi_d_py, sizeof(__pyx_k_bench_psi_d_py), 0, 0, 1, 1},
  {&__pyx_n_s_beta, __pyx_k_beta, sizeof(__pyx_k_beta), 0, 0, 1, 1},
  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
  {&__pyx_kp_s_cython_special_custom_pxi, __pyx_k_cython_special_custom_pxi, sizeof(__pyx_k_cython_special_custom_pxi), 0, 0, 1, 0},
  {&__pyx_kp_s_cython_special_pyx, __pyx_k_cython_special_pyx, sizeof(__pyx_k_cython_special_pyx), 0, 0, 1, 0},
  {&__pyx_n_s_dawsn, __pyx_k_dawsn, sizeof(__pyx_k_dawsn), 0, 0, 1, 1},
  {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1},
  {&__pyx_n_s_derivative, __pyx_k_derivative, sizeof(__pyx_k_derivative), 0, 0, 1, 1},
  {&__pyx_n_s_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 0, 1, 1},
  {&__pyx_kp_s_double_complex, __pyx_k_double_complex, sizeof(__pyx_k_double_complex), 0, 0, 1, 0},
  {&__pyx_kp_s_double_double, __pyx_k_double_double, sizeof(__pyx_k_double_double), 0, 0, 1, 0},
  {&__pyx_kp_s_double_double_complex, __pyx_k_double_double_complex, sizeof(__pyx_k_double_double_complex), 0, 0, 1, 0},
  {&__pyx_n_s_ellipj_pywrap, __pyx_k_ellipj_pywrap, sizeof(__pyx_k_ellipj_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_erf, __pyx_k_erf, sizeof(__pyx_k_erf), 0, 0, 1, 1},
  {&__pyx_n_s_erfc, __pyx_k_erfc, sizeof(__pyx_k_erfc), 0, 0, 1, 1},
  {&__pyx_n_s_erfcx, __pyx_k_erfcx, sizeof(__pyx_k_erfcx), 0, 0, 1, 1},
  {&__pyx_n_s_erfi, __pyx_k_erfi, sizeof(__pyx_k_erfi), 0, 0, 1, 1},
  {&__pyx_n_s_eval_chebyc, __pyx_k_eval_chebyc, sizeof(__pyx_k_eval_chebyc), 0, 0, 1, 1},
  {&__pyx_n_s_eval_chebys, __pyx_k_eval_chebys, sizeof(__pyx_k_eval_chebys), 0, 0, 1, 1},
  {&__pyx_n_s_eval_chebyt, __pyx_k_eval_chebyt, sizeof(__pyx_k_eval_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_eval_chebyu, __pyx_k_eval_chebyu, sizeof(__pyx_k_eval_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_eval_gegenbauer, __pyx_k_eval_gegenbauer, sizeof(__pyx_k_eval_gegenbauer), 0, 0, 1, 1},
  {&__pyx_n_s_eval_genlaguerre, __pyx_k_eval_genlaguerre, sizeof(__pyx_k_eval_genlaguerre), 0, 0, 1, 1},
  {&__pyx_n_s_eval_jacobi, __pyx_k_eval_jacobi, sizeof(__pyx_k_eval_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_eval_laguerre, __pyx_k_eval_laguerre, sizeof(__pyx_k_eval_laguerre), 0, 0, 1, 1},
  {&__pyx_n_s_eval_legendre, __pyx_k_eval_legendre, sizeof(__pyx_k_eval_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_eval_sh_chebyt, __pyx_k_eval_sh_chebyt, sizeof(__pyx_k_eval_sh_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_eval_sh_chebyu, __pyx_k_eval_sh_chebyu, sizeof(__pyx_k_eval_sh_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_eval_sh_jacobi, __pyx_k_eval_sh_jacobi, sizeof(__pyx_k_eval_sh_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_eval_sh_legendre, __pyx_k_eval_sh_legendre, sizeof(__pyx_k_eval_sh_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_exp1, __pyx_k_exp1, sizeof(__pyx_k_exp1), 0, 0, 1, 1},
  {&__pyx_n_s_expi, __pyx_k_expi, sizeof(__pyx_k_expi), 0, 0, 1, 1},
  {&__pyx_n_s_expit, __pyx_k_expit, sizeof(__pyx_k_expit), 0, 0, 1, 1},
  {&__pyx_n_s_expm1, __pyx_k_expm1, sizeof(__pyx_k_expm1), 0, 0, 1, 1},
  {&__pyx_n_s_expn, __pyx_k_expn, sizeof(__pyx_k_expn), 0, 0, 1, 1},
  {&__pyx_n_s_exprel, __pyx_k_exprel, sizeof(__pyx_k_exprel), 0, 0, 1, 1},
  {&__pyx_n_s_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 0, 1, 1},
  {&__pyx_n_s_fresnel_pywrap, __pyx_k_fresnel_pywrap, sizeof(__pyx_k_fresnel_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_gamma, __pyx_k_gamma, sizeof(__pyx_k_gamma), 0, 0, 1, 1},
  {&__pyx_n_s_hyp0f1, __pyx_k_hyp0f1, sizeof(__pyx_k_hyp0f1), 0, 0, 1, 1},
  {&__pyx_n_s_hyp1f1, __pyx_k_hyp1f1, sizeof(__pyx_k_hyp1f1), 0, 0, 1, 1},
  {&__pyx_n_s_hyp2f1, __pyx_k_hyp2f1, sizeof(__pyx_k_hyp2f1), 0, 0, 1, 1},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_s_it2i0k0_pywrap, __pyx_k_it2i0k0_pywrap, sizeof(__pyx_k_it2i0k0_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_it2j0y0_pywrap, __pyx_k_it2j0y0_pywrap, sizeof(__pyx_k_it2j0y0_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_itairy_pywrap, __pyx_k_itairy_pywrap, sizeof(__pyx_k_itairy_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_iti0k0_pywrap, __pyx_k_iti0k0_pywrap, sizeof(__pyx_k_iti0k0_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_itj0y0_pywrap, __pyx_k_itj0y0_pywrap, sizeof(__pyx_k_itj0y0_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_iv, __pyx_k_iv, sizeof(__pyx_k_iv), 0, 0, 1, 1},
  {&__pyx_n_s_ive, __pyx_k_ive, sizeof(__pyx_k_ive), 0, 0, 1, 1},
  {&__pyx_n_s_jv, __pyx_k_jv, sizeof(__pyx_k_jv), 0, 0, 1, 1},
  {&__pyx_n_s_jve, __pyx_k_jve, sizeof(__pyx_k_jve), 0, 0, 1, 1},
  {&__pyx_n_s_kelvin_pywrap, __pyx_k_kelvin_pywrap, sizeof(__pyx_k_kelvin_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_kn, __pyx_k_kn, sizeof(__pyx_k_kn), 0, 0, 1, 1},
  {&__pyx_n_s_kv, __pyx_k_kv, sizeof(__pyx_k_kv), 0, 0, 1, 1},
  {&__pyx_n_s_kve, __pyx_k_kve, sizeof(__pyx_k_kve), 0, 0, 1, 1},
  {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1},
  {&__pyx_n_s_log1p, __pyx_k_log1p, sizeof(__pyx_k_log1p), 0, 0, 1, 1},
  {&__pyx_n_s_log_ndtr, __pyx_k_log_ndtr, sizeof(__pyx_k_log_ndtr), 0, 0, 1, 1},
  {&__pyx_n_s_loggamma, __pyx_k_loggamma, sizeof(__pyx_k_loggamma), 0, 0, 1, 1},
  {&__pyx_n_s_logit, __pyx_k_logit, sizeof(__pyx_k_logit), 0, 0, 1, 1},
  {&__pyx_n_s_long, __pyx_k_long, sizeof(__pyx_k_long), 0, 0, 1, 1},
  {&__pyx_kp_s_long_double, __pyx_k_long_double, sizeof(__pyx_k_long_double), 0, 0, 1, 0},
  {&__pyx_kp_s_long_double_2, __pyx_k_long_double_2, sizeof(__pyx_k_long_double_2), 0, 0, 1, 0},
  {&__pyx_kp_s_long_double_complex, __pyx_k_long_double_complex, sizeof(__pyx_k_long_double_complex), 0, 0, 1, 0},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_mathieu_cem_pywrap, __pyx_k_mathieu_cem_pywrap, sizeof(__pyx_k_mathieu_cem_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_mathieu_modcem1_pywrap, __pyx_k_mathieu_modcem1_pywrap, sizeof(__pyx_k_mathieu_modcem1_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_mathieu_modcem2_pywrap, __pyx_k_mathieu_modcem2_pywrap, sizeof(__pyx_k_mathieu_modcem2_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_mathieu_modsem1_pywrap, __pyx_k_mathieu_modsem1_pywrap, sizeof(__pyx_k_mathieu_modsem1_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_mathieu_modsem2_pywrap, __pyx_k_mathieu_modsem2_pywrap, sizeof(__pyx_k_mathieu_modsem2_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_mathieu_sem_pywrap, __pyx_k_mathieu_sem_pywrap, sizeof(__pyx_k_mathieu_sem_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_modfresnelm_pywrap, __pyx_k_modfresnelm_pywrap, sizeof(__pyx_k_modfresnelm_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_modfresnelp_pywrap, __pyx_k_modfresnelp_pywrap, sizeof(__pyx_k_modfresnelp_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1},
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
  {&__pyx_n_s_nbdtr, __pyx_k_nbdtr, sizeof(__pyx_k_nbdtr), 0, 0, 1, 1},
  {&__pyx_n_s_nbdtrc, __pyx_k_nbdtrc, sizeof(__pyx_k_nbdtrc), 0, 0, 1, 1},
  {&__pyx_n_s_nbdtri, __pyx_k_nbdtri, sizeof(__pyx_k_nbdtri), 0, 0, 1, 1},
  {&__pyx_n_s_ndtr, __pyx_k_ndtr, sizeof(__pyx_k_ndtr), 0, 0, 1, 1},
  {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
  {&__pyx_kp_u_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 1, 0, 0},
  {&__pyx_kp_u_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 1, 0, 0},
  {&__pyx_n_s_obl_ang1_cv_pywrap, __pyx_k_obl_ang1_cv_pywrap, sizeof(__pyx_k_obl_ang1_cv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_obl_ang1_pywrap, __pyx_k_obl_ang1_pywrap, sizeof(__pyx_k_obl_ang1_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_obl_rad1_cv_pywrap, __pyx_k_obl_rad1_cv_pywrap, sizeof(__pyx_k_obl_rad1_cv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_obl_rad1_pywrap, __pyx_k_obl_rad1_pywrap, sizeof(__pyx_k_obl_rad1_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_obl_rad2_cv_pywrap, __pyx_k_obl_rad2_cv_pywrap, sizeof(__pyx_k_obl_rad2_cv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_obl_rad2_pywrap, __pyx_k_obl_rad2_pywrap, sizeof(__pyx_k_obl_rad2_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pbdv_pywrap, __pyx_k_pbdv_pywrap, sizeof(__pyx_k_pbdv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pbvv_pywrap, __pyx_k_pbvv_pywrap, sizeof(__pyx_k_pbvv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pbwa_pywrap, __pyx_k_pbwa_pywrap, sizeof(__pyx_k_pbwa_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pdtri, __pyx_k_pdtri, sizeof(__pyx_k_pdtri), 0, 0, 1, 1},
  {&__pyx_n_s_pro_ang1_cv_pywrap, __pyx_k_pro_ang1_cv_pywrap, sizeof(__pyx_k_pro_ang1_cv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pro_ang1_pywrap, __pyx_k_pro_ang1_pywrap, sizeof(__pyx_k_pro_ang1_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pro_rad1_cv_pywrap, __pyx_k_pro_rad1_cv_pywrap, sizeof(__pyx_k_pro_rad1_cv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pro_rad1_pywrap, __pyx_k_pro_rad1_pywrap, sizeof(__pyx_k_pro_rad1_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pro_rad2_cv_pywrap, __pyx_k_pro_rad2_cv_pywrap, sizeof(__pyx_k_pro_rad2_cv_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_pro_rad2_pywrap, __pyx_k_pro_rad2_pywrap, sizeof(__pyx_k_pro_rad2_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_psi, __pyx_k_psi, sizeof(__pyx_k_psi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_chebyc, __pyx_k_pyx_fuse_0_0eval_chebyc, sizeof(__pyx_k_pyx_fuse_0_0eval_chebyc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_chebys, __pyx_k_pyx_fuse_0_0eval_chebys, sizeof(__pyx_k_pyx_fuse_0_0eval_chebys), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_chebyt, __pyx_k_pyx_fuse_0_0eval_chebyt, sizeof(__pyx_k_pyx_fuse_0_0eval_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_chebyu, __pyx_k_pyx_fuse_0_0eval_chebyu, sizeof(__pyx_k_pyx_fuse_0_0eval_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_gegenbauer, __pyx_k_pyx_fuse_0_0eval_gegenbauer, sizeof(__pyx_k_pyx_fuse_0_0eval_gegenbauer), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_genlaguerre, __pyx_k_pyx_fuse_0_0eval_genlaguerre, sizeof(__pyx_k_pyx_fuse_0_0eval_genlaguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_jacobi, __pyx_k_pyx_fuse_0_0eval_jacobi, sizeof(__pyx_k_pyx_fuse_0_0eval_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_laguerre, __pyx_k_pyx_fuse_0_0eval_laguerre, sizeof(__pyx_k_pyx_fuse_0_0eval_laguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_legendre, __pyx_k_pyx_fuse_0_0eval_legendre, sizeof(__pyx_k_pyx_fuse_0_0eval_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_sh_chebyt, __pyx_k_pyx_fuse_0_0eval_sh_chebyt, sizeof(__pyx_k_pyx_fuse_0_0eval_sh_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_sh_chebyu, __pyx_k_pyx_fuse_0_0eval_sh_chebyu, sizeof(__pyx_k_pyx_fuse_0_0eval_sh_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_sh_jacobi, __pyx_k_pyx_fuse_0_0eval_sh_jacobi, sizeof(__pyx_k_pyx_fuse_0_0eval_sh_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_0eval_sh_legendre, __pyx_k_pyx_fuse_0_0eval_sh_legendre, sizeof(__pyx_k_pyx_fuse_0_0eval_sh_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_chebyc, __pyx_k_pyx_fuse_0_1eval_chebyc, sizeof(__pyx_k_pyx_fuse_0_1eval_chebyc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_chebys, __pyx_k_pyx_fuse_0_1eval_chebys, sizeof(__pyx_k_pyx_fuse_0_1eval_chebys), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_chebyt, __pyx_k_pyx_fuse_0_1eval_chebyt, sizeof(__pyx_k_pyx_fuse_0_1eval_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_chebyu, __pyx_k_pyx_fuse_0_1eval_chebyu, sizeof(__pyx_k_pyx_fuse_0_1eval_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_gegenbauer, __pyx_k_pyx_fuse_0_1eval_gegenbauer, sizeof(__pyx_k_pyx_fuse_0_1eval_gegenbauer), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_genlaguerre, __pyx_k_pyx_fuse_0_1eval_genlaguerre, sizeof(__pyx_k_pyx_fuse_0_1eval_genlaguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_jacobi, __pyx_k_pyx_fuse_0_1eval_jacobi, sizeof(__pyx_k_pyx_fuse_0_1eval_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_laguerre, __pyx_k_pyx_fuse_0_1eval_laguerre, sizeof(__pyx_k_pyx_fuse_0_1eval_laguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_legendre, __pyx_k_pyx_fuse_0_1eval_legendre, sizeof(__pyx_k_pyx_fuse_0_1eval_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_sh_chebyt, __pyx_k_pyx_fuse_0_1eval_sh_chebyt, sizeof(__pyx_k_pyx_fuse_0_1eval_sh_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_sh_chebyu, __pyx_k_pyx_fuse_0_1eval_sh_chebyu, sizeof(__pyx_k_pyx_fuse_0_1eval_sh_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_sh_jacobi, __pyx_k_pyx_fuse_0_1eval_sh_jacobi, sizeof(__pyx_k_pyx_fuse_0_1eval_sh_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0_1eval_sh_legendre, __pyx_k_pyx_fuse_0_1eval_sh_legendre, sizeof(__pyx_k_pyx_fuse_0_1eval_sh_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0bdtr, __pyx_k_pyx_fuse_0bdtr, sizeof(__pyx_k_pyx_fuse_0bdtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0bdtrc, __pyx_k_pyx_fuse_0bdtrc, sizeof(__pyx_k_pyx_fuse_0bdtrc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0bdtri, __pyx_k_pyx_fuse_0bdtri, sizeof(__pyx_k_pyx_fuse_0bdtri), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0dawsn, __pyx_k_pyx_fuse_0dawsn, sizeof(__pyx_k_pyx_fuse_0dawsn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0erf, __pyx_k_pyx_fuse_0erf, sizeof(__pyx_k_pyx_fuse_0erf), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0erfc, __pyx_k_pyx_fuse_0erfc, sizeof(__pyx_k_pyx_fuse_0erfc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0erfcx, __pyx_k_pyx_fuse_0erfcx, sizeof(__pyx_k_pyx_fuse_0erfcx), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0erfi, __pyx_k_pyx_fuse_0erfi, sizeof(__pyx_k_pyx_fuse_0erfi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0exp1, __pyx_k_pyx_fuse_0exp1, sizeof(__pyx_k_pyx_fuse_0exp1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0expi, __pyx_k_pyx_fuse_0expi, sizeof(__pyx_k_pyx_fuse_0expi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0expit, __pyx_k_pyx_fuse_0expit, sizeof(__pyx_k_pyx_fuse_0expit), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0expm1, __pyx_k_pyx_fuse_0expm1, sizeof(__pyx_k_pyx_fuse_0expm1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0expn, __pyx_k_pyx_fuse_0expn, sizeof(__pyx_k_pyx_fuse_0expn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0gamma, __pyx_k_pyx_fuse_0gamma, sizeof(__pyx_k_pyx_fuse_0gamma), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0hyp0f1, __pyx_k_pyx_fuse_0hyp0f1, sizeof(__pyx_k_pyx_fuse_0hyp0f1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0hyp1f1, __pyx_k_pyx_fuse_0hyp1f1, sizeof(__pyx_k_pyx_fuse_0hyp1f1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0hyp2f1, __pyx_k_pyx_fuse_0hyp2f1, sizeof(__pyx_k_pyx_fuse_0hyp2f1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0iv, __pyx_k_pyx_fuse_0iv, sizeof(__pyx_k_pyx_fuse_0iv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0ive, __pyx_k_pyx_fuse_0ive, sizeof(__pyx_k_pyx_fuse_0ive), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0jv, __pyx_k_pyx_fuse_0jv, sizeof(__pyx_k_pyx_fuse_0jv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0jve, __pyx_k_pyx_fuse_0jve, sizeof(__pyx_k_pyx_fuse_0jve), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0kn, __pyx_k_pyx_fuse_0kn, sizeof(__pyx_k_pyx_fuse_0kn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0kv, __pyx_k_pyx_fuse_0kv, sizeof(__pyx_k_pyx_fuse_0kv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0kve, __pyx_k_pyx_fuse_0kve, sizeof(__pyx_k_pyx_fuse_0kve), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0log1p, __pyx_k_pyx_fuse_0log1p, sizeof(__pyx_k_pyx_fuse_0log1p), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0log_ndtr, __pyx_k_pyx_fuse_0log_ndtr, sizeof(__pyx_k_pyx_fuse_0log_ndtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0loggamma, __pyx_k_pyx_fuse_0loggamma, sizeof(__pyx_k_pyx_fuse_0loggamma), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0logit, __pyx_k_pyx_fuse_0logit, sizeof(__pyx_k_pyx_fuse_0logit), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0nbdtr, __pyx_k_pyx_fuse_0nbdtr, sizeof(__pyx_k_pyx_fuse_0nbdtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0nbdtrc, __pyx_k_pyx_fuse_0nbdtrc, sizeof(__pyx_k_pyx_fuse_0nbdtrc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0nbdtri, __pyx_k_pyx_fuse_0nbdtri, sizeof(__pyx_k_pyx_fuse_0nbdtri), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0ndtr, __pyx_k_pyx_fuse_0ndtr, sizeof(__pyx_k_pyx_fuse_0ndtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0pdtri, __pyx_k_pyx_fuse_0pdtri, sizeof(__pyx_k_pyx_fuse_0pdtri), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0psi, __pyx_k_pyx_fuse_0psi, sizeof(__pyx_k_pyx_fuse_0psi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0rgamma, __pyx_k_pyx_fuse_0rgamma, sizeof(__pyx_k_pyx_fuse_0rgamma), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0smirnov, __pyx_k_pyx_fuse_0smirnov, sizeof(__pyx_k_pyx_fuse_0smirnov), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0smirnovi, __pyx_k_pyx_fuse_0smirnovi, sizeof(__pyx_k_pyx_fuse_0smirnovi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0spence, __pyx_k_pyx_fuse_0spence, sizeof(__pyx_k_pyx_fuse_0spence), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0sph_harm, __pyx_k_pyx_fuse_0sph_harm, sizeof(__pyx_k_pyx_fuse_0sph_harm), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0spherical_in, __pyx_k_pyx_fuse_0spherical_in, sizeof(__pyx_k_pyx_fuse_0spherical_in), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0spherical_jn, __pyx_k_pyx_fuse_0spherical_jn, sizeof(__pyx_k_pyx_fuse_0spherical_jn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0spherical_kn, __pyx_k_pyx_fuse_0spherical_kn, sizeof(__pyx_k_pyx_fuse_0spherical_kn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0spherical_yn, __pyx_k_pyx_fuse_0spherical_yn, sizeof(__pyx_k_pyx_fuse_0spherical_yn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0wrightomega, __pyx_k_pyx_fuse_0wrightomega, sizeof(__pyx_k_pyx_fuse_0wrightomega), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0xlog1py, __pyx_k_pyx_fuse_0xlog1py, sizeof(__pyx_k_pyx_fuse_0xlog1py), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0xlogy, __pyx_k_pyx_fuse_0xlogy, sizeof(__pyx_k_pyx_fuse_0xlogy), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0yn, __pyx_k_pyx_fuse_0yn, sizeof(__pyx_k_pyx_fuse_0yn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0yv, __pyx_k_pyx_fuse_0yv, sizeof(__pyx_k_pyx_fuse_0yv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_0yve, __pyx_k_pyx_fuse_0yve, sizeof(__pyx_k_pyx_fuse_0yve), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_chebyc, __pyx_k_pyx_fuse_1_0eval_chebyc, sizeof(__pyx_k_pyx_fuse_1_0eval_chebyc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_chebys, __pyx_k_pyx_fuse_1_0eval_chebys, sizeof(__pyx_k_pyx_fuse_1_0eval_chebys), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_chebyt, __pyx_k_pyx_fuse_1_0eval_chebyt, sizeof(__pyx_k_pyx_fuse_1_0eval_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_chebyu, __pyx_k_pyx_fuse_1_0eval_chebyu, sizeof(__pyx_k_pyx_fuse_1_0eval_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_gegenbauer, __pyx_k_pyx_fuse_1_0eval_gegenbauer, sizeof(__pyx_k_pyx_fuse_1_0eval_gegenbauer), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_genlaguerre, __pyx_k_pyx_fuse_1_0eval_genlaguerre, sizeof(__pyx_k_pyx_fuse_1_0eval_genlaguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_jacobi, __pyx_k_pyx_fuse_1_0eval_jacobi, sizeof(__pyx_k_pyx_fuse_1_0eval_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_laguerre, __pyx_k_pyx_fuse_1_0eval_laguerre, sizeof(__pyx_k_pyx_fuse_1_0eval_laguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_legendre, __pyx_k_pyx_fuse_1_0eval_legendre, sizeof(__pyx_k_pyx_fuse_1_0eval_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_sh_chebyt, __pyx_k_pyx_fuse_1_0eval_sh_chebyt, sizeof(__pyx_k_pyx_fuse_1_0eval_sh_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_sh_chebyu, __pyx_k_pyx_fuse_1_0eval_sh_chebyu, sizeof(__pyx_k_pyx_fuse_1_0eval_sh_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_sh_jacobi, __pyx_k_pyx_fuse_1_0eval_sh_jacobi, sizeof(__pyx_k_pyx_fuse_1_0eval_sh_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_0eval_sh_legendre, __pyx_k_pyx_fuse_1_0eval_sh_legendre, sizeof(__pyx_k_pyx_fuse_1_0eval_sh_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_chebyc, __pyx_k_pyx_fuse_1_1eval_chebyc, sizeof(__pyx_k_pyx_fuse_1_1eval_chebyc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_chebys, __pyx_k_pyx_fuse_1_1eval_chebys, sizeof(__pyx_k_pyx_fuse_1_1eval_chebys), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_chebyt, __pyx_k_pyx_fuse_1_1eval_chebyt, sizeof(__pyx_k_pyx_fuse_1_1eval_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_chebyu, __pyx_k_pyx_fuse_1_1eval_chebyu, sizeof(__pyx_k_pyx_fuse_1_1eval_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_gegenbauer, __pyx_k_pyx_fuse_1_1eval_gegenbauer, sizeof(__pyx_k_pyx_fuse_1_1eval_gegenbauer), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_genlaguerre, __pyx_k_pyx_fuse_1_1eval_genlaguerre, sizeof(__pyx_k_pyx_fuse_1_1eval_genlaguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_jacobi, __pyx_k_pyx_fuse_1_1eval_jacobi, sizeof(__pyx_k_pyx_fuse_1_1eval_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_laguerre, __pyx_k_pyx_fuse_1_1eval_laguerre, sizeof(__pyx_k_pyx_fuse_1_1eval_laguerre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_legendre, __pyx_k_pyx_fuse_1_1eval_legendre, sizeof(__pyx_k_pyx_fuse_1_1eval_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_sh_chebyt, __pyx_k_pyx_fuse_1_1eval_sh_chebyt, sizeof(__pyx_k_pyx_fuse_1_1eval_sh_chebyt), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_sh_chebyu, __pyx_k_pyx_fuse_1_1eval_sh_chebyu, sizeof(__pyx_k_pyx_fuse_1_1eval_sh_chebyu), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_sh_jacobi, __pyx_k_pyx_fuse_1_1eval_sh_jacobi, sizeof(__pyx_k_pyx_fuse_1_1eval_sh_jacobi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1_1eval_sh_legendre, __pyx_k_pyx_fuse_1_1eval_sh_legendre, sizeof(__pyx_k_pyx_fuse_1_1eval_sh_legendre), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1bdtr, __pyx_k_pyx_fuse_1bdtr, sizeof(__pyx_k_pyx_fuse_1bdtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1bdtrc, __pyx_k_pyx_fuse_1bdtrc, sizeof(__pyx_k_pyx_fuse_1bdtrc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1bdtri, __pyx_k_pyx_fuse_1bdtri, sizeof(__pyx_k_pyx_fuse_1bdtri), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1dawsn, __pyx_k_pyx_fuse_1dawsn, sizeof(__pyx_k_pyx_fuse_1dawsn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1erf, __pyx_k_pyx_fuse_1erf, sizeof(__pyx_k_pyx_fuse_1erf), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1erfc, __pyx_k_pyx_fuse_1erfc, sizeof(__pyx_k_pyx_fuse_1erfc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1erfcx, __pyx_k_pyx_fuse_1erfcx, sizeof(__pyx_k_pyx_fuse_1erfcx), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1erfi, __pyx_k_pyx_fuse_1erfi, sizeof(__pyx_k_pyx_fuse_1erfi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1exp1, __pyx_k_pyx_fuse_1exp1, sizeof(__pyx_k_pyx_fuse_1exp1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1expi, __pyx_k_pyx_fuse_1expi, sizeof(__pyx_k_pyx_fuse_1expi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1expit, __pyx_k_pyx_fuse_1expit, sizeof(__pyx_k_pyx_fuse_1expit), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1expm1, __pyx_k_pyx_fuse_1expm1, sizeof(__pyx_k_pyx_fuse_1expm1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1expn, __pyx_k_pyx_fuse_1expn, sizeof(__pyx_k_pyx_fuse_1expn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1gamma, __pyx_k_pyx_fuse_1gamma, sizeof(__pyx_k_pyx_fuse_1gamma), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1hyp0f1, __pyx_k_pyx_fuse_1hyp0f1, sizeof(__pyx_k_pyx_fuse_1hyp0f1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1hyp1f1, __pyx_k_pyx_fuse_1hyp1f1, sizeof(__pyx_k_pyx_fuse_1hyp1f1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1hyp2f1, __pyx_k_pyx_fuse_1hyp2f1, sizeof(__pyx_k_pyx_fuse_1hyp2f1), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1iv, __pyx_k_pyx_fuse_1iv, sizeof(__pyx_k_pyx_fuse_1iv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1ive, __pyx_k_pyx_fuse_1ive, sizeof(__pyx_k_pyx_fuse_1ive), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1jv, __pyx_k_pyx_fuse_1jv, sizeof(__pyx_k_pyx_fuse_1jv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1jve, __pyx_k_pyx_fuse_1jve, sizeof(__pyx_k_pyx_fuse_1jve), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1kn, __pyx_k_pyx_fuse_1kn, sizeof(__pyx_k_pyx_fuse_1kn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1kv, __pyx_k_pyx_fuse_1kv, sizeof(__pyx_k_pyx_fuse_1kv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1kve, __pyx_k_pyx_fuse_1kve, sizeof(__pyx_k_pyx_fuse_1kve), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1log1p, __pyx_k_pyx_fuse_1log1p, sizeof(__pyx_k_pyx_fuse_1log1p), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1log_ndtr, __pyx_k_pyx_fuse_1log_ndtr, sizeof(__pyx_k_pyx_fuse_1log_ndtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1loggamma, __pyx_k_pyx_fuse_1loggamma, sizeof(__pyx_k_pyx_fuse_1loggamma), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1logit, __pyx_k_pyx_fuse_1logit, sizeof(__pyx_k_pyx_fuse_1logit), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1nbdtr, __pyx_k_pyx_fuse_1nbdtr, sizeof(__pyx_k_pyx_fuse_1nbdtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1nbdtrc, __pyx_k_pyx_fuse_1nbdtrc, sizeof(__pyx_k_pyx_fuse_1nbdtrc), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1nbdtri, __pyx_k_pyx_fuse_1nbdtri, sizeof(__pyx_k_pyx_fuse_1nbdtri), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1ndtr, __pyx_k_pyx_fuse_1ndtr, sizeof(__pyx_k_pyx_fuse_1ndtr), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1pdtri, __pyx_k_pyx_fuse_1pdtri, sizeof(__pyx_k_pyx_fuse_1pdtri), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1psi, __pyx_k_pyx_fuse_1psi, sizeof(__pyx_k_pyx_fuse_1psi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1rgamma, __pyx_k_pyx_fuse_1rgamma, sizeof(__pyx_k_pyx_fuse_1rgamma), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1smirnov, __pyx_k_pyx_fuse_1smirnov, sizeof(__pyx_k_pyx_fuse_1smirnov), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1smirnovi, __pyx_k_pyx_fuse_1smirnovi, sizeof(__pyx_k_pyx_fuse_1smirnovi), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1spence, __pyx_k_pyx_fuse_1spence, sizeof(__pyx_k_pyx_fuse_1spence), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1sph_harm, __pyx_k_pyx_fuse_1sph_harm, sizeof(__pyx_k_pyx_fuse_1sph_harm), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1spherical_in, __pyx_k_pyx_fuse_1spherical_in, sizeof(__pyx_k_pyx_fuse_1spherical_in), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1spherical_jn, __pyx_k_pyx_fuse_1spherical_jn, sizeof(__pyx_k_pyx_fuse_1spherical_jn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1spherical_kn, __pyx_k_pyx_fuse_1spherical_kn, sizeof(__pyx_k_pyx_fuse_1spherical_kn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1spherical_yn, __pyx_k_pyx_fuse_1spherical_yn, sizeof(__pyx_k_pyx_fuse_1spherical_yn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1wrightomega, __pyx_k_pyx_fuse_1wrightomega, sizeof(__pyx_k_pyx_fuse_1wrightomega), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1xlog1py, __pyx_k_pyx_fuse_1xlog1py, sizeof(__pyx_k_pyx_fuse_1xlog1py), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1xlogy, __pyx_k_pyx_fuse_1xlogy, sizeof(__pyx_k_pyx_fuse_1xlogy), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1yn, __pyx_k_pyx_fuse_1yn, sizeof(__pyx_k_pyx_fuse_1yn), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1yv, __pyx_k_pyx_fuse_1yv, sizeof(__pyx_k_pyx_fuse_1yv), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_1yve, __pyx_k_pyx_fuse_1yve, sizeof(__pyx_k_pyx_fuse_1yve), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_2expit, __pyx_k_pyx_fuse_2expit, sizeof(__pyx_k_pyx_fuse_2expit), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_fuse_2logit, __pyx_k_pyx_fuse_2logit, sizeof(__pyx_k_pyx_fuse_2logit), 0, 0, 1, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_rgamma, __pyx_k_rgamma, sizeof(__pyx_k_rgamma), 0, 0, 1, 1},
  {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
  {&__pyx_n_s_scipy_special, __pyx_k_scipy_special, sizeof(__pyx_k_scipy_special), 0, 0, 1, 1},
  {&__pyx_n_s_scipy_special_cython_special, __pyx_k_scipy_special_cython_special, sizeof(__pyx_k_scipy_special_cython_special), 0, 0, 1, 1},
  {&__pyx_n_s_shichi_pywrap, __pyx_k_shichi_pywrap, sizeof(__pyx_k_shichi_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_sici_pywrap, __pyx_k_sici_pywrap, sizeof(__pyx_k_sici_pywrap), 0, 0, 1, 1},
  {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1},
  {&__pyx_n_s_smirnov, __pyx_k_smirnov, sizeof(__pyx_k_smirnov), 0, 0, 1, 1},
  {&__pyx_n_s_smirnovi, __pyx_k_smirnovi, sizeof(__pyx_k_smirnovi), 0, 0, 1, 1},
  {&__pyx_n_s_spence, __pyx_k_spence, sizeof(__pyx_k_spence), 0, 0, 1, 1},
  {&__pyx_n_s_sph_harm, __pyx_k_sph_harm, sizeof(__pyx_k_sph_harm), 0, 0, 1, 1},
  {&__pyx_n_s_spherical_in, __pyx_k_spherical_in, sizeof(__pyx_k_spherical_in), 0, 0, 1, 1},
  {&__pyx_n_s_spherical_jn, __pyx_k_spherical_jn, sizeof(__pyx_k_spherical_jn), 0, 0, 1, 1},
  {&__pyx_n_s_spherical_kn, __pyx_k_spherical_kn, sizeof(__pyx_k_spherical_kn), 0, 0, 1, 1},
  {&__pyx_n_s_spherical_yn, __pyx_k_spherical_yn, sizeof(__pyx_k_spherical_yn), 0, 0, 1, 1},
  {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
  {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_ufuncs, __pyx_k_ufuncs, sizeof(__pyx_k_ufuncs), 0, 0, 1, 1},
  {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0},
  {&__pyx_n_s_wrightomega, __pyx_k_wrightomega, sizeof(__pyx_k_wrightomega), 0, 0, 1, 1},
  {&__pyx_n_s_x0, __pyx_k_x0, sizeof(__pyx_k_x0), 0, 0, 1, 1},
  {&__pyx_n_s_x1, __pyx_k_x1, sizeof(__pyx_k_x1), 0, 0, 1, 1},
  {&__pyx_n_s_x2, __pyx_k_x2, sizeof(__pyx_k_x2), 0, 0, 1, 1},
  {&__pyx_n_s_x3, __pyx_k_x3, sizeof(__pyx_k_x3), 0, 0, 1, 1},
  {&__pyx_n_s_x4, __pyx_k_x4, sizeof(__pyx_k_x4), 0, 0, 1, 1},
  {&__pyx_n_s_xlog1py, __pyx_k_xlog1py, sizeof(__pyx_k_xlog1py), 0, 0, 1, 1},
  {&__pyx_n_s_xlogy, __pyx_k_xlogy, sizeof(__pyx_k_xlogy), 0, 0, 1, 1},
  {&__pyx_n_s_y0, __pyx_k_y0, sizeof(__pyx_k_y0), 0, 0, 1, 1},
  {&__pyx_n_s_y1, __pyx_k_y1, sizeof(__pyx_k_y1), 0, 0, 1, 1},
  {&__pyx_n_s_y2, __pyx_k_y2, sizeof(__pyx_k_y2), 0, 0, 1, 1},
  {&__pyx_n_s_y3, __pyx_k_y3, sizeof(__pyx_k_y3), 0, 0, 1, 1},
  {&__pyx_n_s_yn, __pyx_k_yn, sizeof(__pyx_k_yn), 0, 0, 1, 1},
  {&__pyx_n_s_yv, __pyx_k_yv, sizeof(__pyx_k_yv), 0, 0, 1, 1},
  {&__pyx_n_s_yve, __pyx_k_yve, sizeof(__pyx_k_yve), 0, 0, 1, 1},
  {&__pyx_n_s_z, __pyx_k_z, sizeof(__pyx_k_z), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 4, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 4, __pyx_L1_error)
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 777, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 781, __pyx_L1_error)
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 959, __pyx_L1_error)
  __pyx_builtin_RuntimeWarning = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeWarning); if (!__pyx_builtin_RuntimeWarning) __PYX_ERR(4, 35, __pyx_L1_error)
  __pyx_builtin_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_n_s_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(4, 41, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "_cython_special_custom.pxi":4
 * 
 * 
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:
 */
  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);
  __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":777
 * 
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
 * 
 *         if ((child.byteorder == c'>' and little_endian) or
 */
  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(2, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":781
 *         if ((child.byteorder == c'>' and little_endian) or
 *             (child.byteorder == c'<' 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_tuple__19 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(2, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":801
 *             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_tuple__20 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(2, 801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":959
 *         __pyx_import_array()
 *     except Exception:
 *         raise ImportError("numpy.core.multiarray failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_umath() except -1:
 */
  __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(2, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);

  /* "../../../../venv_py38/lib/python3.8/site-packages/numpy/__init__.pxd":965
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_ufunc() except -1:
 */
  __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(2, 965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);

  /* "_cython_special_custom.pxi":4
 * 
 * 
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:
 */
  __pyx_tuple__23 = PyTuple_Pack(3, __pyx_n_s_n, __pyx_n_s_z, __pyx_n_s_derivative); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);
  __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_custom_pxi, __pyx_n_s_pyx_fuse_0spherical_jn, 4, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 4, __pyx_L1_error)

  /* "_cython_special_custom.pxi":16
 * 
 * 
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:
 */
  __pyx_tuple__25 = PyTuple_Pack(3, __pyx_n_s_n, __pyx_n_s_z, __pyx_n_s_derivative); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);
  __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_custom_pxi, __pyx_n_s_pyx_fuse_0spherical_yn, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 16, __pyx_L1_error)

  /* "_cython_special_custom.pxi":28
 * 
 * 
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:
 */
  __pyx_tuple__27 = PyTuple_Pack(3, __pyx_n_s_n, __pyx_n_s_z, __pyx_n_s_derivative); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);
  __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_custom_pxi, __pyx_n_s_pyx_fuse_0spherical_in, 28, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 28, __pyx_L1_error)

  /* "_cython_special_custom.pxi":40
 * 
 * 
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:
 */
  __pyx_tuple__29 = PyTuple_Pack(3, __pyx_n_s_n, __pyx_n_s_z, __pyx_n_s_derivative); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);
  __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_custom_pxi, __pyx_n_s_pyx_fuse_0spherical_kn, 40, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 40, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1733
 *             y3[0] = NPY_NAN
 * 
 * def _airy_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_tuple__31 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_y3); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);
  __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_airy_pywrap, 1733, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(1, 1733, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1767
 *             y3[0] = NPY_NAN
 * 
 * def _airye_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_tuple__33 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_y3); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);
  __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_airye_pywrap, 1767, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(1, 1767, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1775
 *     return y0, y1, y2, y3
 * 
 * cpdef double bdtr(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtr"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__35 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);
  __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0bdtr, 1775, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(1, 1775, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1784
 *         return NPY_NAN
 * 
 * cpdef double bdtrc(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrc"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__37 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__37);
  __Pyx_GIVEREF(__pyx_tuple__37);
  __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0bdtrc, 1784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(1, 1784, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1793
 *         return NPY_NAN
 * 
 * cpdef double bdtri(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtri"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__39 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);
  __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0bdtri, 1793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(1, 1793, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1922
 *     return _func_cotdg(x0)
 * 
 * cpdef Dd_number_t dawsn(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.dawsn"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__41 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);
  __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0dawsn, 1922, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(1, 1922, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1946
 *     _func_ellpj(x0, x1, y0, y1, y2, y3)
 * 
 * def _ellipj_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__43 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_y0, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_y3); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(1, 1946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__43);
  __Pyx_GIVEREF(__pyx_tuple__43);
  __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_ellipj_pywrap, 1946, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(1, 1946, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1970
 *     return _func_entr(x0)
 * 
 * cpdef Dd_number_t erf(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erf"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__45 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__45);
  __Pyx_GIVEREF(__pyx_tuple__45);
  __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0erf, 1970, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(1, 1970, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1982
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfc(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfc"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__47 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);
  __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__47, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0erfc, 1982, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(1, 1982, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":1994
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfcx(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfcx"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__49 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);
  __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0erfcx, 1994, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(1, 1994, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2006
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfi"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__51 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);
  __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0erfi, 2006, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(1, 2006, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2026
 *     return _func_erfcinv(x0)
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__53 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);
  __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_chebyc, 2026, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(1, 2026, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2040
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebys(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__55 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);
  __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_chebys, 2040, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(1, 2040, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2054
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__57 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);
  __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_chebyt, 2054, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(1, 2054, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2068
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__59 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);
  __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_chebyu, 2068, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(1, 2068, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2082
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_gegenbauer(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__61 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);
  __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_gegenbauer, 2082, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(1, 2082, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2096
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_genlaguerre(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__63 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);
  __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_genlaguerre, 2096, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(1, 2096, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2118
 *     return _func_eval_hermitenorm(x0, x1)
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__65 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);
  __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__65, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_jacobi, 2118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(1, 2118, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2132
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_laguerre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__67 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__67);
  __Pyx_GIVEREF(__pyx_tuple__67);
  __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_laguerre, 2132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(1, 2132, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2146
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__69 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);
  __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_legendre, 2146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(1, 2146, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2160
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__71 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__71);
  __Pyx_GIVEREF(__pyx_tuple__71);
  __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_sh_chebyt, 2160, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(1, 2160, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2174
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__73 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__73);
  __Pyx_GIVEREF(__pyx_tuple__73);
  __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_sh_chebyu, 2174, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(1, 2174, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2188
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__75 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__75);
  __Pyx_GIVEREF(__pyx_tuple__75);
  __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__75, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_sh_jacobi, 2188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(1, 2188, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2202
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_tuple__77 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__77);
  __Pyx_GIVEREF(__pyx_tuple__77);
  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0_0eval_sh_legendre, 2202, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(1, 2202, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2216
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t exp1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp1"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__79 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);
  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0exp1, 2216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(1, 2216, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2236
 *     return _func_exp2(x0)
 * 
 * cpdef Dd_number_t expi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expi"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__81 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__81);
  __Pyx_GIVEREF(__pyx_tuple__81);
  __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0expi, 2236, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(1, 2236, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2248
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t expit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expit"""
 *     if dfg_number_t is double:
 */
  __pyx_tuple__83 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__83);
  __Pyx_GIVEREF(__pyx_tuple__83);
  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0expit, 2248, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(1, 2248, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2264
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t expm1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expm1"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__85 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);
  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0expm1, 2264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(1, 2264, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2276
 *             return NPY_NAN
 * 
 * cpdef double expn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expn"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__87 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);
  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0expn, 2276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(1, 2276, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2323
 *             y1[0] = NPY_NAN
 * 
 * def _fresnel_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_tuple__89 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);
  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_fresnel_pywrap, 2323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(1, 2323, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2329
 *     return y0, y1
 * 
 * cpdef Dd_number_t gamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gamma"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__91 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);
  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0gamma, 2329, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(1, 2329, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2405
 *     return _func_huber(x0, x1)
 * 
 * cpdef Dd_number_t hyp0f1(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp0f1"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__93 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);
  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0hyp0f1, 2405, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(1, 2405, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2417
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp1f1(double x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp1f1"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__95 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__95);
  __Pyx_GIVEREF(__pyx_tuple__95);
  __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0hyp1f1, 2417, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(1, 2417, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2429
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp2f1(double x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp2f1"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__97 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__97);
  __Pyx_GIVEREF(__pyx_tuple__97);
  __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__97, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0hyp2f1, 2429, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(1, 2429, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2473
 *     _func_it2i0k0_wrap(x0, y0, y1)
 * 
 * def _it2i0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__99 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(1, 2473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__99);
  __Pyx_GIVEREF(__pyx_tuple__99);
  __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__99, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_it2i0k0_pywrap, 2473, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(1, 2473, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2483
 *     _func_it2j0y0_wrap(x0, y0, y1)
 * 
 * def _it2j0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__101 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(1, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__101);
  __Pyx_GIVEREF(__pyx_tuple__101);
  __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_it2j0y0_pywrap, 2483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(1, 2483, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2497
 *     _func_itairy_wrap(x0, y0, y1, y2, y3)
 * 
 * def _itairy_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__103 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_y3); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(1, 2497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__103);
  __Pyx_GIVEREF(__pyx_tuple__103);
  __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_itairy_pywrap, 2497, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(1, 2497, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2509
 *     _func_it1i0k0_wrap(x0, y0, y1)
 * 
 * def _iti0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__105 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(1, 2509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__105);
  __Pyx_GIVEREF(__pyx_tuple__105);
  __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_iti0k0_pywrap, 2509, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(1, 2509, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2519
 *     _func_it1j0y0_wrap(x0, y0, y1)
 * 
 * def _itj0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__107 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(1, 2519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__107);
  __Pyx_GIVEREF(__pyx_tuple__107);
  __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_itj0y0_pywrap, 2519, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(1, 2519, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2533
 *     return _func_itstruve0_wrap(x0)
 * 
 * cpdef Dd_number_t iv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.iv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__109 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__109);
  __Pyx_GIVEREF(__pyx_tuple__109);
  __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0iv, 2533, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(1, 2533, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2545
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t ive(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ive"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__111 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__111);
  __Pyx_GIVEREF(__pyx_tuple__111);
  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0ive, 2545, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(1, 2545, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2565
 *     return _func_j1(x0)
 * 
 * cpdef Dd_number_t jv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__113 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__113);
  __Pyx_GIVEREF(__pyx_tuple__113);
  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0jv, 2565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(1, 2565, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2577
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t jve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jve"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__115 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__115);
  __Pyx_GIVEREF(__pyx_tuple__115);
  __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0jve, 2577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(1, 2577, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2625
 *     y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 * 
 * def _kelvin_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */
  __pyx_tuple__117 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_y3); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(1, 2625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__117);
  __Pyx_GIVEREF(__pyx_tuple__117);
  __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_kelvin_pywrap, 2625, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(1, 2625, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2645
 *     return _func_kl_div(x0, x1)
 * 
 * cpdef double kn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kn"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__119 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__119);
  __Pyx_GIVEREF(__pyx_tuple__119);
  __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0kn, 2645, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(1, 2645, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2662
 *     return _func_kolmogorov(x0)
 * 
 * cpdef Dd_number_t kv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__121 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__121);
  __Pyx_GIVEREF(__pyx_tuple__121);
  __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0kv, 2662, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(1, 2662, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2674
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t kve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kve"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__123 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__123);
  __Pyx_GIVEREF(__pyx_tuple__123);
  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0kve, 2674, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(1, 2674, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2686
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log1p(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log1p"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__125 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__125);
  __Pyx_GIVEREF(__pyx_tuple__125);
  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0log1p, 2686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(1, 2686, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2698
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log_ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log_ndtr"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__127 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__127);
  __Pyx_GIVEREF(__pyx_tuple__127);
  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0log_ndtr, 2698, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(1, 2698, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2710
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t loggamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.loggamma"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__129 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__129);
  __Pyx_GIVEREF(__pyx_tuple__129);
  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0loggamma, 2710, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(1, 2710, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2722
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t logit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.logit"""
 *     if dfg_number_t is double:
 */
  __pyx_tuple__131 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__131);
  __Pyx_GIVEREF(__pyx_tuple__131);
  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0logit, 2722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(1, 2722, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2754
 *     _func_cem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_cem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__133 = PyTuple_Pack(5, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(1, 2754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__133);
  __Pyx_GIVEREF(__pyx_tuple__133);
  __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_mathieu_cem_pywrap, 2754, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(1, 2754, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2764
 *     _func_mcm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__135 = PyTuple_Pack(5, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(1, 2764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__135);
  __Pyx_GIVEREF(__pyx_tuple__135);
  __pyx_codeobj__136 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_mathieu_modcem1_pywrap, 2764, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__136)) __PYX_ERR(1, 2764, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2774
 *     _func_mcm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__137 = PyTuple_Pack(5, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(1, 2774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__137);
  __Pyx_GIVEREF(__pyx_tuple__137);
  __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_mathieu_modcem2_pywrap, 2774, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(1, 2774, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2784
 *     _func_msm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__139 = PyTuple_Pack(5, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(1, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__139);
  __Pyx_GIVEREF(__pyx_tuple__139);
  __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_mathieu_modsem1_pywrap, 2784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(1, 2784, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2794
 *     _func_msm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__141 = PyTuple_Pack(5, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(1, 2794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__141);
  __Pyx_GIVEREF(__pyx_tuple__141);
  __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_mathieu_modsem2_pywrap, 2794, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(1, 2794, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2804
 *     _func_sem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_sem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__143 = PyTuple_Pack(5, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(1, 2804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__143);
  __Pyx_GIVEREF(__pyx_tuple__143);
  __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_mathieu_sem_pywrap, 2804, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(1, 2804, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2818
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelm_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */
  __pyx_tuple__145 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(1, 2818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__145);
  __Pyx_GIVEREF(__pyx_tuple__145);
  __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__145, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_modfresnelm_pywrap, 2818, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(1, 2818, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2832
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelp_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */
  __pyx_tuple__147 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(1, 2832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__147);
  __Pyx_GIVEREF(__pyx_tuple__147);
  __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__147, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_modfresnelp_pywrap, 2832, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(1, 2832, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2842
 *     return _func_struve_l(x0, x1)
 * 
 * cpdef double nbdtr(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtr"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__149 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__149);
  __Pyx_GIVEREF(__pyx_tuple__149);
  __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0nbdtr, 2842, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(1, 2842, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2851
 *         return NPY_NAN
 * 
 * cpdef double nbdtrc(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrc"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__151 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__151);
  __Pyx_GIVEREF(__pyx_tuple__151);
  __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0nbdtrc, 2851, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(1, 2851, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2860
 *         return NPY_NAN
 * 
 * cpdef double nbdtri(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtri"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__153 = PyTuple_Pack(3, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__153);
  __Pyx_GIVEREF(__pyx_tuple__153);
  __pyx_codeobj__154 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__153, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0nbdtri, 2860, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__154)) __PYX_ERR(1, 2860, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2913
 *     return _func_cdftnc2_wrap(x0, x1, x2)
 * 
 * cpdef Dd_number_t ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ndtr"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__155 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__155);
  __Pyx_GIVEREF(__pyx_tuple__155);
  __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__155, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0ndtr, 2913, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(1, 2913, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2941
 *     y0[0] = _func_oblate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__157 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(1, 2941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__157);
  __Pyx_GIVEREF(__pyx_tuple__157);
  __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__157, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_obl_ang1_pywrap, 2941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(1, 2941, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2951
 *     _func_oblate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__159 = PyTuple_Pack(7, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_x4, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__159)) __PYX_ERR(1, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__159);
  __Pyx_GIVEREF(__pyx_tuple__159);
  __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__159, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_obl_ang1_cv_pywrap, 2951, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(1, 2951, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2965
 *     y0[0] = _func_oblate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__161 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__161)) __PYX_ERR(1, 2965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__161);
  __Pyx_GIVEREF(__pyx_tuple__161);
  __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__161, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_obl_rad1_pywrap, 2965, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(1, 2965, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2975
 *     _func_oblate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__163 = PyTuple_Pack(7, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_x4, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(1, 2975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__163);
  __Pyx_GIVEREF(__pyx_tuple__163);
  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_obl_rad1_cv_pywrap, 2975, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(1, 2975, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2985
 *     y0[0] = _func_oblate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__165 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(1, 2985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__165);
  __Pyx_GIVEREF(__pyx_tuple__165);
  __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_obl_rad2_pywrap, 2985, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(1, 2985, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":2995
 *     _func_oblate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__167 = PyTuple_Pack(7, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_x4, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(1, 2995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__167);
  __Pyx_GIVEREF(__pyx_tuple__167);
  __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_obl_rad2_cv_pywrap, 2995, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(1, 2995, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3009
 *     _func_pbdv_wrap(x0, x1, y0, y1)
 * 
 * def _pbdv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__169 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(1, 3009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__169);
  __Pyx_GIVEREF(__pyx_tuple__169);
  __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pbdv_pywrap, 3009, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(1, 3009, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3019
 *     _func_pbvv_wrap(x0, x1, y0, y1)
 * 
 * def _pbvv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__171 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(1, 3019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__171);
  __Pyx_GIVEREF(__pyx_tuple__171);
  __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pbvv_pywrap, 3019, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(1, 3019, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3029
 *     _func_pbwa_wrap(x0, x1, y0, y1)
 * 
 * def _pbwa_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__173 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(1, 3029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__173);
  __Pyx_GIVEREF(__pyx_tuple__173);
  __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pbwa_pywrap, 3029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(1, 3029, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3043
 *     return _func_pdtrc(x0, x1)
 * 
 * cpdef double pdtri(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtri"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__175 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__175);
  __Pyx_GIVEREF(__pyx_tuple__175);
  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0pdtri, 3043, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(1, 3043, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3064
 *     y0[0] = _func_prolate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__177 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__177)) __PYX_ERR(1, 3064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__177);
  __Pyx_GIVEREF(__pyx_tuple__177);
  __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__177, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pro_ang1_pywrap, 3064, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(1, 3064, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3074
 *     _func_prolate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__179 = PyTuple_Pack(7, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_x4, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__179)) __PYX_ERR(1, 3074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__179);
  __Pyx_GIVEREF(__pyx_tuple__179);
  __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__179, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pro_ang1_cv_pywrap, 3074, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(1, 3074, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3088
 *     y0[0] = _func_prolate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__181 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(1, 3088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__181);
  __Pyx_GIVEREF(__pyx_tuple__181);
  __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__181, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pro_rad1_pywrap, 3088, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(1, 3088, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3098
 *     _func_prolate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__183 = PyTuple_Pack(7, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_x4, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(1, 3098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__183);
  __Pyx_GIVEREF(__pyx_tuple__183);
  __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__183, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pro_rad1_cv_pywrap, 3098, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(1, 3098, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3108
 *     y0[0] = _func_prolate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__185 = PyTuple_Pack(6, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(1, 3108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__185);
  __Pyx_GIVEREF(__pyx_tuple__185);
  __pyx_codeobj__186 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__185, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pro_rad2_pywrap, 3108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__186)) __PYX_ERR(1, 3108, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3118
 *     _func_prolate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_tuple__187 = PyTuple_Pack(7, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3, __pyx_n_s_x4, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(1, 3118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__187);
  __Pyx_GIVEREF(__pyx_tuple__187);
  __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pro_rad2_cv_pywrap, 3118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(1, 3118, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3128
 *     return _func_pseudo_huber(x0, x1)
 * 
 * cpdef Dd_number_t psi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.psi"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__189 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__189);
  __Pyx_GIVEREF(__pyx_tuple__189);
  __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__189, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0psi, 3128, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(1, 3128, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3148
 *     return _func_rel_entr(x0, x1)
 * 
 * cpdef Dd_number_t rgamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.rgamma"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__191 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__191)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__191);
  __Pyx_GIVEREF(__pyx_tuple__191);
  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__191, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0rgamma, 3148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(1, 3148, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3178
 *             y1[0] = NPY_NAN
 * 
 * def _shichi_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_tuple__193 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__193)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__193);
  __Pyx_GIVEREF(__pyx_tuple__193);
  __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__193, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_shichi_pywrap, 3178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(1, 3178, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3198
 *             y1[0] = NPY_NAN
 * 
 * def _sici_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_tuple__195 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x0, __pyx_n_s_y0, __pyx_n_s_y1); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__195);
  __Pyx_GIVEREF(__pyx_tuple__195);
  __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_sici_pywrap, 3198, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(1, 3198, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3208
 *     return _func_sindg(x0)
 * 
 * cpdef double smirnov(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnov"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__197 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__197)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__197);
  __Pyx_GIVEREF(__pyx_tuple__197);
  __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__197, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0smirnov, 3208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(1, 3208, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3217
 *         return NPY_NAN
 * 
 * cpdef double smirnovi(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnovi"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__199 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__199)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__199);
  __Pyx_GIVEREF(__pyx_tuple__199);
  __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__199, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0smirnovi, 3217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(1, 3217, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3226
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t spence(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spence"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__201 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__201)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__201);
  __Pyx_GIVEREF(__pyx_tuple__201);
  __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__201, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0spence, 3226, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(1, 3226, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3238
 *             return NPY_NAN
 * 
 * cpdef double complex sph_harm(dl_number_t x0, dl_number_t x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sph_harm"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__203 = PyTuple_Pack(4, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_x2, __pyx_n_s_x3); if (unlikely(!__pyx_tuple__203)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__203);
  __Pyx_GIVEREF(__pyx_tuple__203);
  __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__203, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0sph_harm, 3238, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(1, 3238, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3275
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)
 * 
 * cpdef Dd_number_t wrightomega(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.wrightomega"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__205 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x0); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__205);
  __Pyx_GIVEREF(__pyx_tuple__205);
  __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0wrightomega, 3275, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(1, 3275, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3287
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlog1py(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlog1py"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__207 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__207);
  __Pyx_GIVEREF(__pyx_tuple__207);
  __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0xlog1py, 3287, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(1, 3287, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3299
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlogy(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlogy"""
 *     if Dd_number_t is double:
 */
  __pyx_tuple__209 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__209)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__209);
  __Pyx_GIVEREF(__pyx_tuple__209);
  __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__209, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0xlogy, 3299, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(1, 3299, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3319
 *     return _func_y1(x0)
 * 
 * cpdef double yn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yn"""
 *     if dl_number_t is double:
 */
  __pyx_tuple__211 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__211)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__211);
  __Pyx_GIVEREF(__pyx_tuple__211);
  __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__211, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0yn, 3319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(1, 3319, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3328
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t yv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__213 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__213);
  __Pyx_GIVEREF(__pyx_tuple__213);
  __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0yv, 3328, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(1, 3328, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3340
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t yve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yve"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_tuple__215 = PyTuple_Pack(2, __pyx_n_s_x0, __pyx_n_s_x1); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__215);
  __Pyx_GIVEREF(__pyx_tuple__215);
  __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_pyx_fuse_0yve, 3340, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(1, 3340, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3356
 *     return _func_zetac(x0)
 * 
 * def _bench_airy_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__217 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(1, 3356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__217);
  __Pyx_GIVEREF(__pyx_tuple__217);
  __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_airy_d_py, 3356, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(1, 3356, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3361
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double y0
 */
  __pyx_tuple__219 = PyTuple_Pack(7, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n, __pyx_n_s_y0, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_y3); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(1, 3361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__219);
  __Pyx_GIVEREF(__pyx_tuple__219);
  __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_airy_d_cy, 3361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(1, 3361, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3370
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_airy_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__221 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__221)) __PYX_ERR(1, 3370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__221);
  __Pyx_GIVEREF(__pyx_tuple__221);
  __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__221, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_airy_D_py, 3370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(1, 3370, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3375
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double complex y0
 */
  __pyx_tuple__223 = PyTuple_Pack(7, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n, __pyx_n_s_y0, __pyx_n_s_y1, __pyx_n_s_y2, __pyx_n_s_y3); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(1, 3375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__223);
  __Pyx_GIVEREF(__pyx_tuple__223);
  __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_airy_D_cy, 3375, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(1, 3375, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3384
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_beta_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__225 = PyTuple_Pack(4, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__225)) __PYX_ERR(1, 3384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__225);
  __Pyx_GIVEREF(__pyx_tuple__225);
  __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__225, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_beta_dd_py, 3384, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(1, 3384, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3389
 *         _ufuncs.beta(x0, x1)
 * 
 * def _bench_beta_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__227 = PyTuple_Pack(4, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__227)) __PYX_ERR(1, 3389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__227);
  __Pyx_GIVEREF(__pyx_tuple__227);
  __pyx_codeobj__228 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__227, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_beta_dd_cy, 3389, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__228)) __PYX_ERR(1, 3389, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3394
 *         beta(x0, x1)
 * 
 * def _bench_erf_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__229 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__229)) __PYX_ERR(1, 3394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__229);
  __Pyx_GIVEREF(__pyx_tuple__229);
  __pyx_codeobj__230 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__229, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_erf_d_py, 3394, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(1, 3394, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3399
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__231 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__231)) __PYX_ERR(1, 3399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__231);
  __Pyx_GIVEREF(__pyx_tuple__231);
  __pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__231, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_erf_d_cy, 3399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(1, 3399, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3404
 *         erf(x0)
 * 
 * def _bench_erf_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__233 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__233)) __PYX_ERR(1, 3404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__233);
  __Pyx_GIVEREF(__pyx_tuple__233);
  __pyx_codeobj__234 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__233, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_erf_D_py, 3404, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__234)) __PYX_ERR(1, 3404, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3409
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__235 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__235)) __PYX_ERR(1, 3409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__235);
  __Pyx_GIVEREF(__pyx_tuple__235);
  __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__235, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_erf_D_cy, 3409, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(1, 3409, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3414
 *         erf(x0)
 * 
 * def _bench_exprel_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__237 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__237)) __PYX_ERR(1, 3414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__237);
  __Pyx_GIVEREF(__pyx_tuple__237);
  __pyx_codeobj__238 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__237, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_exprel_d_py, 3414, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__238)) __PYX_ERR(1, 3414, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3419
 *         _ufuncs.exprel(x0)
 * 
 * def _bench_exprel_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__239 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__239)) __PYX_ERR(1, 3419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__239);
  __Pyx_GIVEREF(__pyx_tuple__239);
  __pyx_codeobj__240 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__239, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_exprel_d_cy, 3419, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__240)) __PYX_ERR(1, 3419, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3424
 *         exprel(x0)
 * 
 * def _bench_gamma_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__241 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(1, 3424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__241);
  __Pyx_GIVEREF(__pyx_tuple__241);
  __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_gamma_d_py, 3424, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(1, 3424, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3429
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__243 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(1, 3429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__243);
  __Pyx_GIVEREF(__pyx_tuple__243);
  __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_gamma_d_cy, 3429, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(1, 3429, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3434
 *         gamma(x0)
 * 
 * def _bench_gamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__245 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__245)) __PYX_ERR(1, 3434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__245);
  __Pyx_GIVEREF(__pyx_tuple__245);
  __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__245, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_gamma_D_py, 3434, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(1, 3434, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3439
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__247 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(1, 3439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__247);
  __Pyx_GIVEREF(__pyx_tuple__247);
  __pyx_codeobj__248 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__247, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_gamma_D_cy, 3439, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__248)) __PYX_ERR(1, 3439, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3444
 *         gamma(x0)
 * 
 * def _bench_jv_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__249 = PyTuple_Pack(4, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(1, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__249);
  __Pyx_GIVEREF(__pyx_tuple__249);
  __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_jv_dd_py, 3444, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(1, 3444, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3449
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__251 = PyTuple_Pack(4, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__251)) __PYX_ERR(1, 3449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__251);
  __Pyx_GIVEREF(__pyx_tuple__251);
  __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__251, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_jv_dd_cy, 3449, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(1, 3449, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3454
 *         jv(x0, x1)
 * 
 * def _bench_jv_dD_py(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__253 = PyTuple_Pack(4, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__253)) __PYX_ERR(1, 3454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__253);
  __Pyx_GIVEREF(__pyx_tuple__253);
  __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__253, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_jv_dD_py, 3454, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(1, 3454, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3459
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dD_cy(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__255 = PyTuple_Pack(4, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_x1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__255)) __PYX_ERR(1, 3459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__255);
  __Pyx_GIVEREF(__pyx_tuple__255);
  __pyx_codeobj__256 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__255, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_jv_dD_cy, 3459, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__256)) __PYX_ERR(1, 3459, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3464
 *         jv(x0, x1)
 * 
 * def _bench_loggamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__257 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__257)) __PYX_ERR(1, 3464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__257);
  __Pyx_GIVEREF(__pyx_tuple__257);
  __pyx_codeobj__258 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__257, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_loggamma_D_py, 3464, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__258)) __PYX_ERR(1, 3464, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3469
 *         _ufuncs.loggamma(x0)
 * 
 * def _bench_loggamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__259 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__259)) __PYX_ERR(1, 3469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__259);
  __Pyx_GIVEREF(__pyx_tuple__259);
  __pyx_codeobj__260 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__259, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_loggamma_D_cy, 3469, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__260)) __PYX_ERR(1, 3469, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3474
 *         loggamma(x0)
 * 
 * def _bench_logit_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__261 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__261)) __PYX_ERR(1, 3474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__261);
  __Pyx_GIVEREF(__pyx_tuple__261);
  __pyx_codeobj__262 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__261, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_logit_d_py, 3474, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__262)) __PYX_ERR(1, 3474, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3479
 *         _ufuncs.logit(x0)
 * 
 * def _bench_logit_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__263 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__263)) __PYX_ERR(1, 3479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__263);
  __Pyx_GIVEREF(__pyx_tuple__263);
  __pyx_codeobj__264 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__263, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_logit_d_cy, 3479, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__264)) __PYX_ERR(1, 3479, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3484
 *         logit(x0)
 * 
 * def _bench_psi_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__265 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__265)) __PYX_ERR(1, 3484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__265);
  __Pyx_GIVEREF(__pyx_tuple__265);
  __pyx_codeobj__266 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__265, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_psi_d_py, 3484, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__266)) __PYX_ERR(1, 3484, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3489
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__267 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__267)) __PYX_ERR(1, 3489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__267);
  __Pyx_GIVEREF(__pyx_tuple__267);
  __pyx_codeobj__268 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__267, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_psi_d_cy, 3489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__268)) __PYX_ERR(1, 3489, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3494
 *         psi(x0)
 * 
 * def _bench_psi_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__269 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(1, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__269);
  __Pyx_GIVEREF(__pyx_tuple__269);
  __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_psi_D_py, 3494, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(1, 3494, __pyx_L1_error)

  /* "scipy/special/cython_special.pyx":3499
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_tuple__271 = PyTuple_Pack(3, __pyx_n_s_N, __pyx_n_s_x0, __pyx_n_s_n); if (unlikely(!__pyx_tuple__271)) __PYX_ERR(1, 3499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__271);
  __Pyx_GIVEREF(__pyx_tuple__271);
  __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__271, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cython_special_pyx, __pyx_n_s_bench_psi_D_cy, 3499, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(1, 3499, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error);
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(1, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  if (__Pyx_ExportFunction("voigt_profile", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_voigt_profile, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("agm", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_agm, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("bdtrik", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_bdtrik, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("bdtrin", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_bdtrin, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("bei", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_bei, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("beip", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_beip, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ber", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ber, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("berp", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_berp, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("besselpoly", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_besselpoly, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("beta", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_beta, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("betainc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_betainc, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("betaincinv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_betaincinv, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("betaln", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_betaln, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("binom", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_binom, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("boxcox", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_boxcox, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("boxcox1p", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_boxcox1p, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("btdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_btdtr, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("btdtri", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_btdtri, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("btdtria", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_btdtria, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("btdtrib", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_btdtrib, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("cbrt", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_cbrt, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chdtr, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chdtrc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chdtrc, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chdtri", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chdtri, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chdtriv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chdtriv, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chndtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chndtr, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chndtridf", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chndtridf, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chndtrinc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chndtrinc, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("chndtrix", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_chndtrix, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("cosdg", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_cosdg, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("cosm1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_cosm1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("cotdg", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_cotdg, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ellipe", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ellipe, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ellipeinc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ellipeinc, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ellipj", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ellipj, "void (double, double, double *, double *, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ellipkinc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ellipkinc, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ellipkm1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ellipkm1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ellipk", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ellipk, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("entr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_entr, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("erfinv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_erfinv, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("erfcinv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_erfcinv, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("eval_hermite", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_eval_hermite, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("eval_hermitenorm", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_eval_hermitenorm, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("exp10", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_exp10, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("exp2", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_exp2, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("exprel", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_exprel, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("fdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_fdtr, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("fdtrc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_fdtrc, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("fdtri", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_fdtri, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("fdtridfd", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_fdtridfd, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gammainc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gammainc, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gammaincc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gammaincc, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gammainccinv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gammainccinv, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gammaincinv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gammaincinv, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gammaln", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gammaln, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gammasgn", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gammasgn, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gdtr, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gdtrc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gdtrc, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gdtria", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gdtria, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gdtrib", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gdtrib, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("gdtrix", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_gdtrix, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("hankel1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_hankel1, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("hankel1e", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_hankel1e, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("hankel2", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_hankel2, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("hankel2e", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_hankel2e, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("huber", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_huber, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("hyperu", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_hyperu, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("i0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_i0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("i0e", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_i0e, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("i1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_i1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("i1e", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_i1e, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("inv_boxcox", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_inv_boxcox, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("inv_boxcox1p", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_inv_boxcox1p, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("it2i0k0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_it2i0k0, "void (double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("it2j0y0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_it2j0y0, "void (double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("it2struve0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_it2struve0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("itairy", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_itairy, "void (double, double *, double *, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("iti0k0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_iti0k0, "void (double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("itj0y0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_itj0y0, "void (double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("itmodstruve0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_itmodstruve0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("itstruve0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_itstruve0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("j0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_j0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("j1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_j1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_k0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k0e", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_k0e, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_k1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k1e", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_k1e, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("kei", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_kei, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("keip", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_keip, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("kelvin", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_kelvin, "void (double, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ker", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ker, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("kerp", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_kerp, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("kl_div", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_kl_div, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("kolmogi", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_kolmogi, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("kolmogorov", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_kolmogorov, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("lpmv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_lpmv, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_a", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_a, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_b", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_b, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_cem", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_cem, "void (double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_modcem1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_modcem1, "void (double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_modcem2", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_modcem2, "void (double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_modsem1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_modsem1, "void (double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_modsem2", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_modsem2, "void (double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("mathieu_sem", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_mathieu_sem, "void (double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("modfresnelm", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_modfresnelm, "void (double, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("modfresnelp", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_modfresnelp, "void (double, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("modstruve", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_modstruve, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nbdtrik", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nbdtrik, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nbdtrin", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nbdtrin, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncfdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ncfdtr, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncfdtri", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ncfdtri, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncfdtridfd", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ncfdtridfd, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncfdtridfn", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ncfdtridfn, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncfdtrinc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ncfdtrinc, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nctdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nctdtr, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nctdtridf", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nctdtridf, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nctdtrinc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nctdtrinc, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nctdtrit", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nctdtrit, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ndtri", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_ndtri, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nrdtrimn", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nrdtrimn, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nrdtrisd", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_nrdtrisd, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("obl_ang1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_obl_ang1, "void (double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("obl_ang1_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_obl_ang1_cv, "void (double, double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("obl_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_obl_cv, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("obl_rad1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_obl_rad1, "void (double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("obl_rad1_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_obl_rad1_cv, "void (double, double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("obl_rad2", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_obl_rad2, "void (double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("obl_rad2_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_obl_rad2_cv, "void (double, double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("owens_t", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_owens_t, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pbdv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pbdv, "void (double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pbvv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pbvv, "void (double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pbwa", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pbwa, "void (double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pdtr, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pdtrc", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pdtrc, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pdtrik", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pdtrik, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("poch", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_poch, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pro_ang1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pro_ang1, "void (double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pro_ang1_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pro_ang1_cv, "void (double, double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pro_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pro_cv, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pro_rad1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pro_rad1, "void (double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pro_rad1_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pro_rad1_cv, "void (double, double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pro_rad2", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pro_rad2, "void (double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pro_rad2_cv", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pro_rad2_cv, "void (double, double, double, double, double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pseudo_huber", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_pseudo_huber, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("radian", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_radian, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rel_entr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_rel_entr, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("round", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_round, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("sindg", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_sindg, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("stdtr", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_stdtr, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("stdtridf", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_stdtridf, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("stdtrit", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_stdtrit, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("struve", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_struve, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("tandg", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_tandg, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("tklmbda", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_tklmbda, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("wofz", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_wofz, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("y0", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_y0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("y1", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_y1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("zetac", (void (*)(void))__pyx_f_5scipy_7special_14cython_special_zetac, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0spherical_jn", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_jn, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1spherical_jn", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_jn, "double (long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_jn *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0spherical_yn", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_yn, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1spherical_yn", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_yn, "double (long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_yn *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0spherical_in", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_in, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_in *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1spherical_in", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_in, "double (long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_in *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0spherical_kn", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spherical_kn, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch, struct __pyx_fuse_0__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1spherical_kn", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spherical_kn, "double (long, double, int __pyx_skip_dispatch, struct __pyx_fuse_1__pyx_opt_args_5scipy_7special_14cython_special_spherical_kn *__pyx_optional_args)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0airy", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airy, "void (__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1airy", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airy, "void (double, double *, double *, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0airye", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_airye, "void (__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1airye", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_airye, "void (double, double *, double *, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0bdtr", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtr, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1bdtr", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtr, "double (double, long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0bdtrc", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtrc, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1bdtrc", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtrc, "double (double, long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0bdtri", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_bdtri, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1bdtri", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_bdtri, "double (double, long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0dawsn", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_dawsn, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1dawsn", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_dawsn, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0erf", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erf, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1erf", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erf, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0erfc", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfc, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1erfc", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfc, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0erfcx", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfcx, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1erfcx", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfcx, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0erfi", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_erfi, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1erfi", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_erfi, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_chebyc", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_chebyc", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_chebyc", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyc, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_chebyc", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyc, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_chebys", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebys, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_chebys", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebys, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_chebys", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebys, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_chebys", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebys, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_chebyt", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_chebyt", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_chebyt", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyt, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_chebyt", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyt, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_chebyu", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_chebyu", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_chebyu", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_chebyu, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_chebyu", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_chebyu, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_gegenbauer", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer, "__pyx_t_double_complex (double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_gegenbauer", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_gegenbauer", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer, "__pyx_t_double_complex (long, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_gegenbauer", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_gegenbauer, "double (long, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_genlaguerre", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre, "__pyx_t_double_complex (double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_genlaguerre", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_genlaguerre", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre, "__pyx_t_double_complex (long, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_genlaguerre", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_genlaguerre, "double (long, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_jacobi", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi, "__pyx_t_double_complex (double, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_jacobi", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_jacobi", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_jacobi, "__pyx_t_double_complex (long, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_jacobi", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_jacobi, "double (long, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_laguerre", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_laguerre", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_laguerre", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_laguerre, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_laguerre", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_laguerre, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_legendre", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_legendre, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_legendre", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_legendre, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_legendre", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_legendre, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_legendre", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_legendre, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_sh_chebyt", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_sh_chebyt", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_sh_chebyt", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_sh_chebyt", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyt, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_sh_chebyu", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_sh_chebyu", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_sh_chebyu", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_sh_chebyu", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_chebyu, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_sh_jacobi", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi, "__pyx_t_double_complex (double, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_sh_jacobi", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_sh_jacobi", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi, "__pyx_t_double_complex (long, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_sh_jacobi", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_jacobi, "double (long, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_0eval_sh_legendre", (void (*)(void))__pyx_fuse_0_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0_1eval_sh_legendre", (void (*)(void))__pyx_fuse_0_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_0eval_sh_legendre", (void (*)(void))__pyx_fuse_1_0__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre, "__pyx_t_double_complex (long, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1_1eval_sh_legendre", (void (*)(void))__pyx_fuse_1_1__pyx_f_5scipy_7special_14cython_special_eval_sh_legendre, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0exp1", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_exp1, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1exp1", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_exp1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0expi", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expi, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1expi", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expi, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0expit", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expit, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1expit", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expit, "float (float, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_2expit", (void (*)(void))__pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_expit, "long double (long double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0expm1", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expm1, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1expm1", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expm1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0expn", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_expn, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1expn", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_expn, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0fresnel", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_fresnel, "void (__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1fresnel", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_fresnel, "void (double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0gamma", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_gamma, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1gamma", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_gamma, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0hyp0f1", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp0f1, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1hyp0f1", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp0f1, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0hyp1f1", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp1f1, "__pyx_t_double_complex (double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1hyp1f1", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp1f1, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0hyp2f1", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_hyp2f1, "__pyx_t_double_complex (double, double, double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1hyp2f1", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp2f1, "double (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0iv", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_iv, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1iv", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_iv, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0ive", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ive, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1ive", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ive, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0jv", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jv, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1jv", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jv, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0jve", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_jve, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1jve", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_jve, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0kn", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kn, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1kn", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kn, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0kv", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kv, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1kv", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kv, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0kve", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_kve, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1kve", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_kve, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0log1p", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log1p, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1log1p", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log1p, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0log_ndtr", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_log_ndtr, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1log_ndtr", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_log_ndtr, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0loggamma", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_loggamma, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1loggamma", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_loggamma, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0logit", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_logit, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1logit", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_logit, "float (float, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_2logit", (void (*)(void))__pyx_fuse_2__pyx_f_5scipy_7special_14cython_special_logit, "long double (long double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0nbdtr", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtr, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1nbdtr", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtr, "double (long, long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0nbdtrc", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtrc, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1nbdtrc", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtrc, "double (long, long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0nbdtri", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_nbdtri, "double (double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1nbdtri", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_nbdtri, "double (long, long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0ndtr", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_ndtr, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1ndtr", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_ndtr, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0pdtri", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_pdtri, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1pdtri", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_pdtri, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0psi", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_psi, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1psi", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_psi, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0rgamma", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_rgamma, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1rgamma", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_rgamma, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0shichi", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_shichi, "void (__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1shichi", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_shichi, "void (double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0sici", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sici, "void (__pyx_t_double_complex, __pyx_t_double_complex *, __pyx_t_double_complex *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1sici", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sici, "void (double, double *, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0smirnov", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnov, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1smirnov", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnov, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0smirnovi", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_smirnovi, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1smirnovi", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_smirnovi, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0spence", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_spence, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1spence", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_spence, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0sph_harm", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_sph_harm, "__pyx_t_double_complex (double, double, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1sph_harm", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_sph_harm, "__pyx_t_double_complex (long, long, double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0wrightomega", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_wrightomega, "__pyx_t_double_complex (__pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1wrightomega", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_wrightomega, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0xlog1py", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlog1py, "__pyx_t_double_complex (__pyx_t_double_complex, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1xlog1py", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlog1py, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0xlogy", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_xlogy, "__pyx_t_double_complex (__pyx_t_double_complex, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1xlogy", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_xlogy, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0yn", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yn, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1yn", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yn, "double (long, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0yv", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yv, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1yv", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yv, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_0yve", (void (*)(void))__pyx_fuse_0__pyx_f_5scipy_7special_14cython_special_yve, "__pyx_t_double_complex (double, __pyx_t_double_complex, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("__pyx_fuse_1yve", (void (*)(void))__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_yve, "double (double, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(10, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 207, __pyx_L1_error)
  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 230, __pyx_L1_error)
  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 234, __pyx_L1_error)
  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 246, __pyx_L1_error)
  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore);
   if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 839, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __pyx_t_1 = PyImport_ImportModule("scipy.special._ufuncs_cxx"); if (!__pyx_t_1) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_dawsn", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_dawsn_complex", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_dawsn_complex, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_erf", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erf, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_erfc", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfc, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_erfcx", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_erfcx_complex", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfcx_complex, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_erfi", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_erfi_complex", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_erfi_complex, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_log_ndtr", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_log_ndtr, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_ndtr", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_ndtr, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_voigt_profile", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_voigt_profile, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_faddeeva_w", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_faddeeva_w, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_wrightomega", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_wrightomega, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  if (__Pyx_ImportVoidPtr(__pyx_t_1, "_export_wrightomega_real", (void **)&__pyx_vp_5scipy_7special_11_ufuncs_cxx__export_wrightomega_real, "void *") < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}


#ifndef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#elif PY_MAJOR_VERSION < 3
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" void
#else
#define __Pyx_PyMODINIT_FUNC void
#endif
#else
#ifdef __cplusplus
#define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyObject *
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initcython_special(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initcython_special(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_cython_special(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_cython_special(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_cython_special(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'cython_special' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_cython_special(void)", 0);
  if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  /*--- 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 CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("cython_special", __pyx_methods, __pyx_k_highlight_cython_Cython_API_for, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error)
  Py_INCREF(__pyx_b);
  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error)
  Py_INCREF(__pyx_cython_runtime);
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error);
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_scipy__special__cython_special) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "scipy.special.cython_special")) {
      if (unlikely(PyDict_SetItemString(modules, "scipy.special.cython_special", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  (void)__Pyx_modinit_variable_export_code();
  if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error)
  (void)__Pyx_modinit_type_init_code();
  if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error)
  if (unlikely(__Pyx_modinit_variable_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error)
  (void)__Pyx_modinit_function_import_code();
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  #endif

  /* "_cython_special.pxi":26
 * from . cimport _complexstuff
 * cimport scipy.special._ufuncs_cxx
 * from scipy.special import _ufuncs             # <<<<<<<<<<<<<<
 * 
 * ctypedef long double long_double
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_ufuncs);
  __Pyx_GIVEREF(__pyx_n_s_ufuncs);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_ufuncs);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_scipy_special, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_ufuncs); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ufuncs, __pyx_t_1) < 0) __PYX_ERR(11, 26, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "_cython_special_custom.pxi":4
 * 
 * 
 * cpdef number_t spherical_jn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_jn"""
 *     if derivative:
 */
  __pyx_t_2 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_k_ = __pyx_t_2;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_k__6 = 0;
  __pyx_k__6 = 0;
  __pyx_k__7 = 0;
  __pyx_k__7 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_507__pyx_fuse_0spherical_jn, 0, __pyx_n_s_pyx_fuse_0spherical_jn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_509__pyx_fuse_1spherical_jn, 0, __pyx_n_s_pyx_fuse_1spherical_jn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_1spherical_jn, 0, __pyx_n_s_spherical_jn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_2;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spherical_jn, __pyx_t_3) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "_cython_special_custom.pxi":16
 * 
 * 
 * cpdef number_t spherical_yn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_yn"""
 *     if derivative:
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k__8 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_k__9 = 0;
  __pyx_k__9 = 0;
  __pyx_k__10 = 0;
  __pyx_k__10 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_513__pyx_fuse_0spherical_yn, 0, __pyx_n_s_pyx_fuse_0spherical_yn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_2) < 0) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_515__pyx_fuse_1spherical_yn, 0, __pyx_n_s_pyx_fuse_1spherical_yn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_2) < 0) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_3spherical_yn, 0, __pyx_n_s_spherical_yn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3);
  ((__pyx_FusedFunctionObject *) __pyx_t_2)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spherical_yn, __pyx_t_2) < 0) __PYX_ERR(0, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "_cython_special_custom.pxi":28
 * 
 * 
 * cpdef number_t spherical_in(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_in"""
 *     if derivative:
 */
  __pyx_t_3 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_k__11 = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_k__12 = 0;
  __pyx_k__12 = 0;
  __pyx_k__13 = 0;
  __pyx_k__13 = 0;
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_519__pyx_fuse_0spherical_in, 0, __pyx_n_s_pyx_fuse_0spherical_in, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_521__pyx_fuse_1spherical_in, 0, __pyx_n_s_pyx_fuse_1spherical_in, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_5spherical_in, 0, __pyx_n_s_spherical_in, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_2);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spherical_in, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "_cython_special_custom.pxi":40
 * 
 * 
 * cpdef number_t spherical_kn(long n, number_t z, bint derivative=0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spherical_kn"""
 *     if derivative:
 */
  __pyx_t_2 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyInt_From_long(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_k__14 = __pyx_t_2;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_k__15 = 0;
  __pyx_k__15 = 0;
  __pyx_k__16 = 0;
  __pyx_k__16 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_525__pyx_fuse_0spherical_kn, 0, __pyx_n_s_pyx_fuse_0spherical_kn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_527__pyx_fuse_1spherical_kn, 0, __pyx_n_s_pyx_fuse_1spherical_kn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_7spherical_kn, 0, __pyx_n_s_spherical_kn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_1);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_2;
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spherical_kn, __pyx_t_3) < 0) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":1043
 * from ._agm cimport agm as _func_agm
 * ctypedef double _proto_agm_t(double, double) nogil
 * cdef _proto_agm_t *_proto_agm_t_var = &_func_agm             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_int _func_airy_wrap "airy_wrap"(npy_double, npy_double *, npy_double *, npy_double *, npy_double *)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_agm_t_var = (&__pyx_f_5scipy_7special_4_agm_agm);

  /* "scipy/special/cython_special.pyx":1054
 * from ._legacy cimport bdtr_unsafe as _func_bdtr_unsafe
 * ctypedef double _proto_bdtr_unsafe_t(double, double, double) nogil
 * cdef _proto_bdtr_unsafe_t *_proto_bdtr_unsafe_t_var = &_func_bdtr_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_bdtr "bdtr"(npy_double, npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_bdtr_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_bdtr_unsafe);

  /* "scipy/special/cython_special.pyx":1059
 * from ._legacy cimport bdtrc_unsafe as _func_bdtrc_unsafe
 * ctypedef double _proto_bdtrc_unsafe_t(double, double, double) nogil
 * cdef _proto_bdtrc_unsafe_t *_proto_bdtrc_unsafe_t_var = &_func_bdtrc_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_bdtrc "bdtrc"(npy_double, npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_bdtrc_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_bdtrc_unsafe);

  /* "scipy/special/cython_special.pyx":1064
 * from ._legacy cimport bdtri_unsafe as _func_bdtri_unsafe
 * ctypedef double _proto_bdtri_unsafe_t(double, double, double) nogil
 * cdef _proto_bdtri_unsafe_t *_proto_bdtri_unsafe_t_var = &_func_bdtri_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_bdtri "bdtri"(npy_double, npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_bdtri_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_bdtri_unsafe);

  /* "scipy/special/cython_special.pyx":1091
 * from .orthogonal_eval cimport binom as _func_binom
 * ctypedef double _proto_binom_t(double, double) nogil
 * cdef _proto_binom_t *_proto_binom_t_var = &_func_binom             # <<<<<<<<<<<<<<
 * from ._boxcox cimport boxcox as _func_boxcox
 * ctypedef double _proto_boxcox_t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_binom_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_binom);

  /* "scipy/special/cython_special.pyx":1094
 * from ._boxcox cimport boxcox as _func_boxcox
 * ctypedef double _proto_boxcox_t(double, double) nogil
 * cdef _proto_boxcox_t *_proto_boxcox_t_var = &_func_boxcox             # <<<<<<<<<<<<<<
 * from ._boxcox cimport boxcox1p as _func_boxcox1p
 * ctypedef double _proto_boxcox1p_t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_boxcox_t_var = (&__pyx_f_5scipy_7special_7_boxcox_boxcox);

  /* "scipy/special/cython_special.pyx":1097
 * from ._boxcox cimport boxcox1p as _func_boxcox1p
 * ctypedef double _proto_boxcox1p_t(double, double) nogil
 * cdef _proto_boxcox1p_t *_proto_boxcox1p_t_var = &_func_boxcox1p             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_btdtr "btdtr"(npy_double, npy_double, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_boxcox1p_t_var = (&__pyx_f_5scipy_7special_7_boxcox_boxcox1p);

  /* "scipy/special/cython_special.pyx":1142
 * from ._ellipk cimport ellipk as _func_ellipk
 * ctypedef double _proto_ellipk_t(double) nogil
 * cdef _proto_ellipk_t *_proto_ellipk_t_var = &_func_ellipk             # <<<<<<<<<<<<<<
 * from ._convex_analysis cimport entr as _func_entr
 * ctypedef double _proto_entr_t(double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_ellipk_t_var = (&__pyx_f_5scipy_7special_7_ellipk_ellipk);

  /* "scipy/special/cython_special.pyx":1145
 * from ._convex_analysis cimport entr as _func_entr
 * ctypedef double _proto_entr_t(double) nogil
 * cdef _proto_entr_t *_proto_entr_t_var = &_func_entr             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_erf "erf"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_entr_t_var = (&__pyx_f_5scipy_7special_16_convex_analysis_entr);

  /* "scipy/special/cython_special.pyx":1156
 * from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
 * ctypedef double complex _proto_eval_chebyc_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_chebyc_double_complex__t *_proto_eval_chebyc_double_complex__t_var = &_func_eval_chebyc[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
 * ctypedef double _proto_eval_chebyc_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyc_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc);

  /* "scipy/special/cython_special.pyx":1159
 * from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
 * ctypedef double _proto_eval_chebyc_double__t(double, double) nogil
 * cdef _proto_eval_chebyc_double__t *_proto_eval_chebyc_double__t_var = &_func_eval_chebyc[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyc_l as _func_eval_chebyc_l
 * ctypedef double _proto_eval_chebyc_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyc_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc);

  /* "scipy/special/cython_special.pyx":1162
 * from .orthogonal_eval cimport eval_chebyc_l as _func_eval_chebyc_l
 * ctypedef double _proto_eval_chebyc_l_t(long, double) nogil
 * cdef _proto_eval_chebyc_l_t *_proto_eval_chebyc_l_t_var = &_func_eval_chebyc_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 * ctypedef double complex _proto_eval_chebys_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyc_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyc_l);

  /* "scipy/special/cython_special.pyx":1165
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 * ctypedef double complex _proto_eval_chebys_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_chebys_double_complex__t *_proto_eval_chebys_double_complex__t_var = &_func_eval_chebys[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 * ctypedef double _proto_eval_chebys_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebys_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys);

  /* "scipy/special/cython_special.pyx":1168
 * from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
 * ctypedef double _proto_eval_chebys_double__t(double, double) nogil
 * cdef _proto_eval_chebys_double__t *_proto_eval_chebys_double__t_var = &_func_eval_chebys[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebys_l as _func_eval_chebys_l
 * ctypedef double _proto_eval_chebys_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebys_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys);

  /* "scipy/special/cython_special.pyx":1171
 * from .orthogonal_eval cimport eval_chebys_l as _func_eval_chebys_l
 * ctypedef double _proto_eval_chebys_l_t(long, double) nogil
 * cdef _proto_eval_chebys_l_t *_proto_eval_chebys_l_t_var = &_func_eval_chebys_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 * ctypedef double complex _proto_eval_chebyt_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebys_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebys_l);

  /* "scipy/special/cython_special.pyx":1174
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 * ctypedef double complex _proto_eval_chebyt_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_chebyt_double_complex__t *_proto_eval_chebyt_double_complex__t_var = &_func_eval_chebyt[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 * ctypedef double _proto_eval_chebyt_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyt_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt);

  /* "scipy/special/cython_special.pyx":1177
 * from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
 * ctypedef double _proto_eval_chebyt_double__t(double, double) nogil
 * cdef _proto_eval_chebyt_double__t *_proto_eval_chebyt_double__t_var = &_func_eval_chebyt[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyt_l as _func_eval_chebyt_l
 * ctypedef double _proto_eval_chebyt_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyt_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt);

  /* "scipy/special/cython_special.pyx":1180
 * from .orthogonal_eval cimport eval_chebyt_l as _func_eval_chebyt_l
 * ctypedef double _proto_eval_chebyt_l_t(long, double) nogil
 * cdef _proto_eval_chebyt_l_t *_proto_eval_chebyt_l_t_var = &_func_eval_chebyt_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 * ctypedef double complex _proto_eval_chebyu_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyt_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyt_l);

  /* "scipy/special/cython_special.pyx":1183
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 * ctypedef double complex _proto_eval_chebyu_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_chebyu_double_complex__t *_proto_eval_chebyu_double_complex__t_var = &_func_eval_chebyu[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 * ctypedef double _proto_eval_chebyu_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyu_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu);

  /* "scipy/special/cython_special.pyx":1186
 * from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
 * ctypedef double _proto_eval_chebyu_double__t(double, double) nogil
 * cdef _proto_eval_chebyu_double__t *_proto_eval_chebyu_double__t_var = &_func_eval_chebyu[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_chebyu_l as _func_eval_chebyu_l
 * ctypedef double _proto_eval_chebyu_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyu_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu);

  /* "scipy/special/cython_special.pyx":1189
 * from .orthogonal_eval cimport eval_chebyu_l as _func_eval_chebyu_l
 * ctypedef double _proto_eval_chebyu_l_t(long, double) nogil
 * cdef _proto_eval_chebyu_l_t *_proto_eval_chebyu_l_t_var = &_func_eval_chebyu_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 * ctypedef double complex _proto_eval_gegenbauer_double_complex__t(double, double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_chebyu_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_chebyu_l);

  /* "scipy/special/cython_special.pyx":1192
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 * ctypedef double complex _proto_eval_gegenbauer_double_complex__t(double, double, double complex) nogil
 * cdef _proto_eval_gegenbauer_double_complex__t *_proto_eval_gegenbauer_double_complex__t_var = &_func_eval_gegenbauer[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 * ctypedef double _proto_eval_gegenbauer_double__t(double, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_gegenbauer_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer);

  /* "scipy/special/cython_special.pyx":1195
 * from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
 * ctypedef double _proto_eval_gegenbauer_double__t(double, double, double) nogil
 * cdef _proto_eval_gegenbauer_double__t *_proto_eval_gegenbauer_double__t_var = &_func_eval_gegenbauer[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_gegenbauer_l as _func_eval_gegenbauer_l
 * ctypedef double _proto_eval_gegenbauer_l_t(long, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_gegenbauer_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer);

  /* "scipy/special/cython_special.pyx":1198
 * from .orthogonal_eval cimport eval_gegenbauer_l as _func_eval_gegenbauer_l
 * ctypedef double _proto_eval_gegenbauer_l_t(long, double, double) nogil
 * cdef _proto_eval_gegenbauer_l_t *_proto_eval_gegenbauer_l_t_var = &_func_eval_gegenbauer_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 * ctypedef double complex _proto_eval_genlaguerre_double_complex__t(double, double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_gegenbauer_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_gegenbauer_l);

  /* "scipy/special/cython_special.pyx":1201
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 * ctypedef double complex _proto_eval_genlaguerre_double_complex__t(double, double, double complex) nogil
 * cdef _proto_eval_genlaguerre_double_complex__t *_proto_eval_genlaguerre_double_complex__t_var = &_func_eval_genlaguerre[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 * ctypedef double _proto_eval_genlaguerre_double__t(double, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_genlaguerre_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre);

  /* "scipy/special/cython_special.pyx":1204
 * from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
 * ctypedef double _proto_eval_genlaguerre_double__t(double, double, double) nogil
 * cdef _proto_eval_genlaguerre_double__t *_proto_eval_genlaguerre_double__t_var = &_func_eval_genlaguerre[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_genlaguerre_l as _func_eval_genlaguerre_l
 * ctypedef double _proto_eval_genlaguerre_l_t(long, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_genlaguerre_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre);

  /* "scipy/special/cython_special.pyx":1207
 * from .orthogonal_eval cimport eval_genlaguerre_l as _func_eval_genlaguerre_l
 * ctypedef double _proto_eval_genlaguerre_l_t(long, double, double) nogil
 * cdef _proto_eval_genlaguerre_l_t *_proto_eval_genlaguerre_l_t_var = &_func_eval_genlaguerre_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_hermite as _func_eval_hermite
 * ctypedef double _proto_eval_hermite_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_genlaguerre_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_genlaguerre_l);

  /* "scipy/special/cython_special.pyx":1210
 * from .orthogonal_eval cimport eval_hermite as _func_eval_hermite
 * ctypedef double _proto_eval_hermite_t(long, double) nogil
 * cdef _proto_eval_hermite_t *_proto_eval_hermite_t_var = &_func_eval_hermite             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_hermitenorm as _func_eval_hermitenorm
 * ctypedef double _proto_eval_hermitenorm_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_hermite_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_hermite);

  /* "scipy/special/cython_special.pyx":1213
 * from .orthogonal_eval cimport eval_hermitenorm as _func_eval_hermitenorm
 * ctypedef double _proto_eval_hermitenorm_t(long, double) nogil
 * cdef _proto_eval_hermitenorm_t *_proto_eval_hermitenorm_t_var = &_func_eval_hermitenorm             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 * ctypedef double complex _proto_eval_jacobi_double_complex__t(double, double, double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_hermitenorm_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_hermitenorm);

  /* "scipy/special/cython_special.pyx":1216
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 * ctypedef double complex _proto_eval_jacobi_double_complex__t(double, double, double, double complex) nogil
 * cdef _proto_eval_jacobi_double_complex__t *_proto_eval_jacobi_double_complex__t_var = &_func_eval_jacobi[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 * ctypedef double _proto_eval_jacobi_double__t(double, double, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_jacobi_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi);

  /* "scipy/special/cython_special.pyx":1219
 * from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
 * ctypedef double _proto_eval_jacobi_double__t(double, double, double, double) nogil
 * cdef _proto_eval_jacobi_double__t *_proto_eval_jacobi_double__t_var = &_func_eval_jacobi[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_jacobi_l as _func_eval_jacobi_l
 * ctypedef double _proto_eval_jacobi_l_t(long, double, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_jacobi_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi);

  /* "scipy/special/cython_special.pyx":1222
 * from .orthogonal_eval cimport eval_jacobi_l as _func_eval_jacobi_l
 * ctypedef double _proto_eval_jacobi_l_t(long, double, double, double) nogil
 * cdef _proto_eval_jacobi_l_t *_proto_eval_jacobi_l_t_var = &_func_eval_jacobi_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 * ctypedef double complex _proto_eval_laguerre_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_jacobi_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_jacobi_l);

  /* "scipy/special/cython_special.pyx":1225
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 * ctypedef double complex _proto_eval_laguerre_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_laguerre_double_complex__t *_proto_eval_laguerre_double_complex__t_var = &_func_eval_laguerre[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 * ctypedef double _proto_eval_laguerre_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_laguerre_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre);

  /* "scipy/special/cython_special.pyx":1228
 * from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
 * ctypedef double _proto_eval_laguerre_double__t(double, double) nogil
 * cdef _proto_eval_laguerre_double__t *_proto_eval_laguerre_double__t_var = &_func_eval_laguerre[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_laguerre_l as _func_eval_laguerre_l
 * ctypedef double _proto_eval_laguerre_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_laguerre_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre);

  /* "scipy/special/cython_special.pyx":1231
 * from .orthogonal_eval cimport eval_laguerre_l as _func_eval_laguerre_l
 * ctypedef double _proto_eval_laguerre_l_t(long, double) nogil
 * cdef _proto_eval_laguerre_l_t *_proto_eval_laguerre_l_t_var = &_func_eval_laguerre_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 * ctypedef double complex _proto_eval_legendre_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_laguerre_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_laguerre_l);

  /* "scipy/special/cython_special.pyx":1234
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 * ctypedef double complex _proto_eval_legendre_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_legendre_double_complex__t *_proto_eval_legendre_double_complex__t_var = &_func_eval_legendre[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 * ctypedef double _proto_eval_legendre_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_legendre_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre);

  /* "scipy/special/cython_special.pyx":1237
 * from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
 * ctypedef double _proto_eval_legendre_double__t(double, double) nogil
 * cdef _proto_eval_legendre_double__t *_proto_eval_legendre_double__t_var = &_func_eval_legendre[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_legendre_l as _func_eval_legendre_l
 * ctypedef double _proto_eval_legendre_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_legendre_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre);

  /* "scipy/special/cython_special.pyx":1240
 * from .orthogonal_eval cimport eval_legendre_l as _func_eval_legendre_l
 * ctypedef double _proto_eval_legendre_l_t(long, double) nogil
 * cdef _proto_eval_legendre_l_t *_proto_eval_legendre_l_t_var = &_func_eval_legendre_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 * ctypedef double complex _proto_eval_sh_chebyt_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_legendre_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_legendre_l);

  /* "scipy/special/cython_special.pyx":1243
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 * ctypedef double complex _proto_eval_sh_chebyt_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_sh_chebyt_double_complex__t *_proto_eval_sh_chebyt_double_complex__t_var = &_func_eval_sh_chebyt[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 * ctypedef double _proto_eval_sh_chebyt_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt);

  /* "scipy/special/cython_special.pyx":1246
 * from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
 * ctypedef double _proto_eval_sh_chebyt_double__t(double, double) nogil
 * cdef _proto_eval_sh_chebyt_double__t *_proto_eval_sh_chebyt_double__t_var = &_func_eval_sh_chebyt[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_chebyt_l as _func_eval_sh_chebyt_l
 * ctypedef double _proto_eval_sh_chebyt_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyt_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt);

  /* "scipy/special/cython_special.pyx":1249
 * from .orthogonal_eval cimport eval_sh_chebyt_l as _func_eval_sh_chebyt_l
 * ctypedef double _proto_eval_sh_chebyt_l_t(long, double) nogil
 * cdef _proto_eval_sh_chebyt_l_t *_proto_eval_sh_chebyt_l_t_var = &_func_eval_sh_chebyt_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 * ctypedef double complex _proto_eval_sh_chebyu_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyt_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyt_l);

  /* "scipy/special/cython_special.pyx":1252
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 * ctypedef double complex _proto_eval_sh_chebyu_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_sh_chebyu_double_complex__t *_proto_eval_sh_chebyu_double_complex__t_var = &_func_eval_sh_chebyu[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 * ctypedef double _proto_eval_sh_chebyu_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu);

  /* "scipy/special/cython_special.pyx":1255
 * from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
 * ctypedef double _proto_eval_sh_chebyu_double__t(double, double) nogil
 * cdef _proto_eval_sh_chebyu_double__t *_proto_eval_sh_chebyu_double__t_var = &_func_eval_sh_chebyu[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_chebyu_l as _func_eval_sh_chebyu_l
 * ctypedef double _proto_eval_sh_chebyu_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyu_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu);

  /* "scipy/special/cython_special.pyx":1258
 * from .orthogonal_eval cimport eval_sh_chebyu_l as _func_eval_sh_chebyu_l
 * ctypedef double _proto_eval_sh_chebyu_l_t(long, double) nogil
 * cdef _proto_eval_sh_chebyu_l_t *_proto_eval_sh_chebyu_l_t_var = &_func_eval_sh_chebyu_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 * ctypedef double complex _proto_eval_sh_jacobi_double_complex__t(double, double, double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_chebyu_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_chebyu_l);

  /* "scipy/special/cython_special.pyx":1261
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 * ctypedef double complex _proto_eval_sh_jacobi_double_complex__t(double, double, double, double complex) nogil
 * cdef _proto_eval_sh_jacobi_double_complex__t *_proto_eval_sh_jacobi_double_complex__t_var = &_func_eval_sh_jacobi[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 * ctypedef double _proto_eval_sh_jacobi_double__t(double, double, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi);

  /* "scipy/special/cython_special.pyx":1264
 * from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
 * ctypedef double _proto_eval_sh_jacobi_double__t(double, double, double, double) nogil
 * cdef _proto_eval_sh_jacobi_double__t *_proto_eval_sh_jacobi_double__t_var = &_func_eval_sh_jacobi[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_jacobi_l as _func_eval_sh_jacobi_l
 * ctypedef double _proto_eval_sh_jacobi_l_t(long, double, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_jacobi_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi);

  /* "scipy/special/cython_special.pyx":1267
 * from .orthogonal_eval cimport eval_sh_jacobi_l as _func_eval_sh_jacobi_l
 * ctypedef double _proto_eval_sh_jacobi_l_t(long, double, double, double) nogil
 * cdef _proto_eval_sh_jacobi_l_t *_proto_eval_sh_jacobi_l_t_var = &_func_eval_sh_jacobi_l             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 * ctypedef double complex _proto_eval_sh_legendre_double_complex__t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_jacobi_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_jacobi_l);

  /* "scipy/special/cython_special.pyx":1270
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 * ctypedef double complex _proto_eval_sh_legendre_double_complex__t(double, double complex) nogil
 * cdef _proto_eval_sh_legendre_double_complex__t *_proto_eval_sh_legendre_double_complex__t_var = &_func_eval_sh_legendre[double_complex]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 * ctypedef double _proto_eval_sh_legendre_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_legendre_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre);

  /* "scipy/special/cython_special.pyx":1273
 * from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
 * ctypedef double _proto_eval_sh_legendre_double__t(double, double) nogil
 * cdef _proto_eval_sh_legendre_double__t *_proto_eval_sh_legendre_double__t_var = &_func_eval_sh_legendre[double]             # <<<<<<<<<<<<<<
 * from .orthogonal_eval cimport eval_sh_legendre_l as _func_eval_sh_legendre_l
 * ctypedef double _proto_eval_sh_legendre_l_t(long, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_legendre_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre);

  /* "scipy/special/cython_special.pyx":1276
 * from .orthogonal_eval cimport eval_sh_legendre_l as _func_eval_sh_legendre_l
 * ctypedef double _proto_eval_sh_legendre_l_t(long, double) nogil
 * cdef _proto_eval_sh_legendre_l_t *_proto_eval_sh_legendre_l_t_var = &_func_eval_sh_legendre_l             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_cdouble _func_cexp1_wrap "cexp1_wrap"(npy_cdouble)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_eval_sh_legendre_l_t_var = (&__pyx_f_5scipy_7special_15orthogonal_eval_eval_sh_legendre_l);

  /* "scipy/special/cython_special.pyx":1297
 * from ._cunity cimport cexpm1 as _func_cexpm1
 * ctypedef double complex _proto_cexpm1_t(double complex) nogil
 * cdef _proto_cexpm1_t *_proto_cexpm1_t_var = &_func_cexpm1             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_expm1 "expm1"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_cexpm1_t_var = (&__pyx_f_5scipy_7special_7_cunity_cexpm1);

  /* "scipy/special/cython_special.pyx":1302
 * from ._legacy cimport expn_unsafe as _func_expn_unsafe
 * ctypedef double _proto_expn_unsafe_t(double, double) nogil
 * cdef _proto_expn_unsafe_t *_proto_expn_unsafe_t_var = &_func_expn_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_expn "expn"(npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_expn_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_expn_unsafe);

  /* "scipy/special/cython_special.pyx":1307
 * from ._exprel cimport exprel as _func_exprel
 * ctypedef double _proto_exprel_t(double) nogil
 * cdef _proto_exprel_t *_proto_exprel_t_var = &_func_exprel             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_fdtr "fdtr"(npy_double, npy_double, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_exprel_t_var = (&__pyx_f_5scipy_7special_7_exprel_exprel);

  /* "scipy/special/cython_special.pyx":1322
 * from ._loggamma cimport cgamma as _func_cgamma
 * ctypedef double complex _proto_cgamma_t(double complex) nogil
 * cdef _proto_cgamma_t *_proto_cgamma_t_var = &_func_cgamma             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_Gamma "Gamma"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_cgamma_t_var = (&__pyx_f_5scipy_7special_9_loggamma_cgamma);

  /* "scipy/special/cython_special.pyx":1357
 * from ._convex_analysis cimport huber as _func_huber
 * ctypedef double _proto_huber_t(double, double) nogil
 * cdef _proto_huber_t *_proto_huber_t_var = &_func_huber             # <<<<<<<<<<<<<<
 * from ._hyp0f1 cimport _hyp0f1_cmplx as _func__hyp0f1_cmplx
 * ctypedef double complex _proto__hyp0f1_cmplx_t(double, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_huber_t_var = (&__pyx_f_5scipy_7special_16_convex_analysis_huber);

  /* "scipy/special/cython_special.pyx":1360
 * from ._hyp0f1 cimport _hyp0f1_cmplx as _func__hyp0f1_cmplx
 * ctypedef double complex _proto__hyp0f1_cmplx_t(double, double complex) nogil
 * cdef _proto__hyp0f1_cmplx_t *_proto__hyp0f1_cmplx_t_var = &_func__hyp0f1_cmplx             # <<<<<<<<<<<<<<
 * from ._hyp0f1 cimport _hyp0f1_real as _func__hyp0f1_real
 * ctypedef double _proto__hyp0f1_real_t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto__hyp0f1_cmplx_t_var = (&__pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_cmplx);

  /* "scipy/special/cython_special.pyx":1363
 * from ._hyp0f1 cimport _hyp0f1_real as _func__hyp0f1_real
 * ctypedef double _proto__hyp0f1_real_t(double, double) nogil
 * cdef _proto__hyp0f1_real_t *_proto__hyp0f1_real_t_var = &_func__hyp0f1_real             # <<<<<<<<<<<<<<
 * from ._hypergeometric cimport hyp1f1 as _func_hyp1f1
 * ctypedef double _proto_hyp1f1_t(double, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto__hyp0f1_real_t_var = (&__pyx_f_5scipy_7special_7_hyp0f1__hyp0f1_real);

  /* "scipy/special/cython_special.pyx":1366
 * from ._hypergeometric cimport hyp1f1 as _func_hyp1f1
 * ctypedef double _proto_hyp1f1_t(double, double, double) nogil
 * cdef _proto_hyp1f1_t *_proto_hyp1f1_t_var = &_func_hyp1f1             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_cdouble _func_chyp1f1_wrap "chyp1f1_wrap"(npy_double, npy_double, npy_cdouble)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_hyp1f1_t_var = (&__pyx_f_5scipy_7special_15_hypergeometric_hyp1f1);

  /* "scipy/special/cython_special.pyx":1375
 * from ._hypergeometric cimport hyperu as _func_hyperu
 * ctypedef double _proto_hyperu_t(double, double, double) nogil
 * cdef _proto_hyperu_t *_proto_hyperu_t_var = &_func_hyperu             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_i0 "i0"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_hyperu_t_var = (&__pyx_f_5scipy_7special_15_hypergeometric_hyperu);

  /* "scipy/special/cython_special.pyx":1386
 * from ._boxcox cimport inv_boxcox as _func_inv_boxcox
 * ctypedef double _proto_inv_boxcox_t(double, double) nogil
 * cdef _proto_inv_boxcox_t *_proto_inv_boxcox_t_var = &_func_inv_boxcox             # <<<<<<<<<<<<<<
 * from ._boxcox cimport inv_boxcox1p as _func_inv_boxcox1p
 * ctypedef double _proto_inv_boxcox1p_t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_inv_boxcox_t_var = (&__pyx_f_5scipy_7special_7_boxcox_inv_boxcox);

  /* "scipy/special/cython_special.pyx":1389
 * from ._boxcox cimport inv_boxcox1p as _func_inv_boxcox1p
 * ctypedef double _proto_inv_boxcox1p_t(double, double) nogil
 * cdef _proto_inv_boxcox1p_t *_proto_inv_boxcox1p_t_var = &_func_inv_boxcox1p             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_int _func_it2i0k0_wrap "it2i0k0_wrap"(npy_double, npy_double *, npy_double *)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_inv_boxcox1p_t_var = (&__pyx_f_5scipy_7special_7_boxcox_inv_boxcox1p);

  /* "scipy/special/cython_special.pyx":1446
 * from ._convex_analysis cimport kl_div as _func_kl_div
 * ctypedef double _proto_kl_div_t(double, double) nogil
 * cdef _proto_kl_div_t *_proto_kl_div_t_var = &_func_kl_div             # <<<<<<<<<<<<<<
 * from ._legacy cimport kn_unsafe as _func_kn_unsafe
 * ctypedef double _proto_kn_unsafe_t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_kl_div_t_var = (&__pyx_f_5scipy_7special_16_convex_analysis_kl_div);

  /* "scipy/special/cython_special.pyx":1449
 * from ._legacy cimport kn_unsafe as _func_kn_unsafe
 * ctypedef double _proto_kn_unsafe_t(double, double) nogil
 * cdef _proto_kn_unsafe_t *_proto_kn_unsafe_t_var = &_func_kn_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_cbesk_wrap_real_int "cbesk_wrap_real_int"(npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_kn_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_kn_unsafe);

  /* "scipy/special/cython_special.pyx":1466
 * from ._cunity cimport clog1p as _func_clog1p
 * ctypedef double complex _proto_clog1p_t(double complex) nogil
 * cdef _proto_clog1p_t *_proto_clog1p_t_var = &_func_clog1p             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_log1p "log1p"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_clog1p_t_var = (&__pyx_f_5scipy_7special_7_cunity_clog1p);

  /* "scipy/special/cython_special.pyx":1473
 * from ._loggamma cimport loggamma_real as _func_loggamma_real
 * ctypedef double _proto_loggamma_real_t(double) nogil
 * cdef _proto_loggamma_real_t *_proto_loggamma_real_t_var = &_func_loggamma_real             # <<<<<<<<<<<<<<
 * from ._loggamma cimport loggamma as _func_loggamma
 * ctypedef double complex _proto_loggamma_t(double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_loggamma_real_t_var = (&__pyx_f_5scipy_7special_9_loggamma_loggamma_real);

  /* "scipy/special/cython_special.pyx":1476
 * from ._loggamma cimport loggamma as _func_loggamma
 * ctypedef double complex _proto_loggamma_t(double complex) nogil
 * cdef _proto_loggamma_t *_proto_loggamma_t_var = &_func_loggamma             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_logit "logit"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_loggamma_t_var = (&__pyx_f_5scipy_7special_9_loggamma_loggamma);

  /* "scipy/special/cython_special.pyx":1509
 * from ._legacy cimport nbdtr_unsafe as _func_nbdtr_unsafe
 * ctypedef double _proto_nbdtr_unsafe_t(double, double, double) nogil
 * cdef _proto_nbdtr_unsafe_t *_proto_nbdtr_unsafe_t_var = &_func_nbdtr_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_nbdtr "nbdtr"(npy_int, npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_nbdtr_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_nbdtr_unsafe);

  /* "scipy/special/cython_special.pyx":1514
 * from ._legacy cimport nbdtrc_unsafe as _func_nbdtrc_unsafe
 * ctypedef double _proto_nbdtrc_unsafe_t(double, double, double) nogil
 * cdef _proto_nbdtrc_unsafe_t *_proto_nbdtrc_unsafe_t_var = &_func_nbdtrc_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_nbdtrc "nbdtrc"(npy_int, npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_nbdtrc_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_nbdtrc_unsafe);

  /* "scipy/special/cython_special.pyx":1519
 * from ._legacy cimport nbdtri_unsafe as _func_nbdtri_unsafe
 * ctypedef double _proto_nbdtri_unsafe_t(double, double, double) nogil
 * cdef _proto_nbdtri_unsafe_t *_proto_nbdtri_unsafe_t_var = &_func_nbdtri_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_nbdtri "nbdtri"(npy_int, npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_nbdtri_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_nbdtri_unsafe);

  /* "scipy/special/cython_special.pyx":1580
 * from ._legacy cimport pdtri_unsafe as _func_pdtri_unsafe
 * ctypedef double _proto_pdtri_unsafe_t(double, double) nogil
 * cdef _proto_pdtri_unsafe_t *_proto_pdtri_unsafe_t_var = &_func_pdtri_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_pdtri "pdtri"(npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_pdtri_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_pdtri_unsafe);

  /* "scipy/special/cython_special.pyx":1603
 * from ._convex_analysis cimport pseudo_huber as _func_pseudo_huber
 * ctypedef double _proto_pseudo_huber_t(double, double) nogil
 * cdef _proto_pseudo_huber_t *_proto_pseudo_huber_t_var = &_func_pseudo_huber             # <<<<<<<<<<<<<<
 * from ._digamma cimport cdigamma as _func_cdigamma
 * ctypedef double complex _proto_cdigamma_t(double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_pseudo_huber_t_var = (&__pyx_f_5scipy_7special_16_convex_analysis_pseudo_huber);

  /* "scipy/special/cython_special.pyx":1606
 * from ._digamma cimport cdigamma as _func_cdigamma
 * ctypedef double complex _proto_cdigamma_t(double complex) nogil
 * cdef _proto_cdigamma_t *_proto_cdigamma_t_var = &_func_cdigamma             # <<<<<<<<<<<<<<
 * from ._digamma cimport digamma as _func_digamma
 * ctypedef double _proto_digamma_t(double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_cdigamma_t_var = (&__pyx_f_5scipy_7special_8_digamma_cdigamma);

  /* "scipy/special/cython_special.pyx":1609
 * from ._digamma cimport digamma as _func_digamma
 * ctypedef double _proto_digamma_t(double) nogil
 * cdef _proto_digamma_t *_proto_digamma_t_var = &_func_digamma             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_radian "radian"(npy_double, npy_double, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_digamma_t_var = (&__pyx_f_5scipy_7special_8_digamma_digamma);

  /* "scipy/special/cython_special.pyx":1614
 * from ._convex_analysis cimport rel_entr as _func_rel_entr
 * ctypedef double _proto_rel_entr_t(double, double) nogil
 * cdef _proto_rel_entr_t *_proto_rel_entr_t_var = &_func_rel_entr             # <<<<<<<<<<<<<<
 * from ._loggamma cimport crgamma as _func_crgamma
 * ctypedef double complex _proto_crgamma_t(double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_rel_entr_t_var = (&__pyx_f_5scipy_7special_16_convex_analysis_rel_entr);

  /* "scipy/special/cython_special.pyx":1617
 * from ._loggamma cimport crgamma as _func_crgamma
 * ctypedef double complex _proto_crgamma_t(double complex) nogil
 * cdef _proto_crgamma_t *_proto_crgamma_t_var = &_func_crgamma             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_rgamma "rgamma"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_crgamma_t_var = (&__pyx_f_5scipy_7special_9_loggamma_crgamma);

  /* "scipy/special/cython_special.pyx":1624
 * from ._sici cimport cshichi as _func_cshichi
 * ctypedef int _proto_cshichi_t(double complex, double complex *, double complex *) nogil
 * cdef _proto_cshichi_t *_proto_cshichi_t_var = &_func_cshichi             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_int _func_shichi "shichi"(npy_double, npy_double *, npy_double *)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_cshichi_t_var = (&__pyx_f_5scipy_7special_5_sici_cshichi);

  /* "scipy/special/cython_special.pyx":1629
 * from ._sici cimport csici as _func_csici
 * ctypedef int _proto_csici_t(double complex, double complex *, double complex *) nogil
 * cdef _proto_csici_t *_proto_csici_t_var = &_func_csici             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_int _func_sici "sici"(npy_double, npy_double *, npy_double *)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_csici_t_var = (&__pyx_f_5scipy_7special_5_sici_csici);

  /* "scipy/special/cython_special.pyx":1636
 * from ._legacy cimport smirnov_unsafe as _func_smirnov_unsafe
 * ctypedef double _proto_smirnov_unsafe_t(double, double) nogil
 * cdef _proto_smirnov_unsafe_t *_proto_smirnov_unsafe_t_var = &_func_smirnov_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_smirnov "smirnov"(npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_smirnov_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_smirnov_unsafe);

  /* "scipy/special/cython_special.pyx":1641
 * from ._legacy cimport smirnovi_unsafe as _func_smirnovi_unsafe
 * ctypedef double _proto_smirnovi_unsafe_t(double, double) nogil
 * cdef _proto_smirnovi_unsafe_t *_proto_smirnovi_unsafe_t_var = &_func_smirnovi_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_smirnovi "smirnovi"(npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_smirnovi_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_smirnovi_unsafe);

  /* "scipy/special/cython_special.pyx":1646
 * from ._spence cimport cspence as _func_cspence
 * ctypedef double complex _proto_cspence_t(double complex) nogil
 * cdef _proto_cspence_t *_proto_cspence_t_var = &_func_cspence             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_spence "spence"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_cspence_t_var = (&__pyx_f_5scipy_7special_7_spence_cspence);

  /* "scipy/special/cython_special.pyx":1651
 * from ._legacy cimport sph_harmonic_unsafe as _func_sph_harmonic_unsafe
 * ctypedef double complex _proto_sph_harmonic_unsafe_t(double, double, double, double) nogil
 * cdef _proto_sph_harmonic_unsafe_t *_proto_sph_harmonic_unsafe_t_var = &_func_sph_harmonic_unsafe             # <<<<<<<<<<<<<<
 * from .sph_harm cimport sph_harmonic as _func_sph_harmonic
 * ctypedef double complex _proto_sph_harmonic_t(int, int, double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_sph_harmonic_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_sph_harmonic_unsafe);

  /* "scipy/special/cython_special.pyx":1654
 * from .sph_harm cimport sph_harmonic as _func_sph_harmonic
 * ctypedef double complex _proto_sph_harmonic_t(int, int, double, double) nogil
 * cdef _proto_sph_harmonic_t *_proto_sph_harmonic_t_var = &_func_sph_harmonic             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_cdft1_wrap "cdft1_wrap"(npy_double, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_sph_harmonic_t_var = (&__pyx_f_5scipy_7special_8sph_harm_sph_harmonic);

  /* "scipy/special/cython_special.pyx":1669
 * from ._xlogy cimport xlog1py as _func_xlog1py
 * ctypedef double _proto_xlog1py_double__t(double, double) nogil
 * cdef _proto_xlog1py_double__t *_proto_xlog1py_double__t_var = &_func_xlog1py[double]             # <<<<<<<<<<<<<<
 * from ._xlogy cimport xlog1py as _func_xlog1py
 * ctypedef double complex _proto_xlog1py_double_complex__t(double complex, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_xlog1py_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlog1py);

  /* "scipy/special/cython_special.pyx":1672
 * from ._xlogy cimport xlog1py as _func_xlog1py
 * ctypedef double complex _proto_xlog1py_double_complex__t(double complex, double complex) nogil
 * cdef _proto_xlog1py_double_complex__t *_proto_xlog1py_double_complex__t_var = &_func_xlog1py[double_complex]             # <<<<<<<<<<<<<<
 * from ._xlogy cimport xlogy as _func_xlogy
 * ctypedef double _proto_xlogy_double__t(double, double) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_xlog1py_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlog1py);

  /* "scipy/special/cython_special.pyx":1675
 * from ._xlogy cimport xlogy as _func_xlogy
 * ctypedef double _proto_xlogy_double__t(double, double) nogil
 * cdef _proto_xlogy_double__t *_proto_xlogy_double__t_var = &_func_xlogy[double]             # <<<<<<<<<<<<<<
 * from ._xlogy cimport xlogy as _func_xlogy
 * ctypedef double complex _proto_xlogy_double_complex__t(double complex, double complex) nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_xlogy_double__t_var = (&__pyx_fuse_0__pyx_f_5scipy_7special_6_xlogy_xlogy);

  /* "scipy/special/cython_special.pyx":1678
 * from ._xlogy cimport xlogy as _func_xlogy
 * ctypedef double complex _proto_xlogy_double_complex__t(double complex, double complex) nogil
 * cdef _proto_xlogy_double_complex__t *_proto_xlogy_double_complex__t_var = &_func_xlogy[double_complex]             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_y0 "y0"(npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_xlogy_double_complex__t_var = (&__pyx_fuse_1__pyx_f_5scipy_7special_6_xlogy_xlogy);

  /* "scipy/special/cython_special.pyx":1685
 * from ._legacy cimport yn_unsafe as _func_yn_unsafe
 * ctypedef double _proto_yn_unsafe_t(double, double) nogil
 * cdef _proto_yn_unsafe_t *_proto_yn_unsafe_t_var = &_func_yn_unsafe             # <<<<<<<<<<<<<<
 * cdef extern from "_ufuncs_defs.h":
 *     cdef npy_double _func_yn "yn"(npy_int, npy_double)nogil
 */
  __pyx_v_5scipy_7special_14cython_special__proto_yn_unsafe_t_var = (&__pyx_f_5scipy_7special_7_legacy_yn_unsafe);

  /* "scipy/special/cython_special.pyx":1733
 *             y3[0] = NPY_NAN
 * 
 * def _airy_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_531_airy_pywrap, 0, __pyx_n_s_airy_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_533_airy_pywrap, 0, __pyx_n_s_airy_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_13_airy_pywrap, 0, __pyx_n_s_airy_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_airy_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 1733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":1767
 *             y3[0] = NPY_NAN
 * 
 * def _airye_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_537_airye_pywrap, 0, __pyx_n_s_airye_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_539_airye_pywrap, 0, __pyx_n_s_airye_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_15_airye_pywrap, 0, __pyx_n_s_airye_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_airye_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 1767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":1775
 *     return y0, y1, y2, y3
 * 
 * cpdef double bdtr(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtr"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_543__pyx_fuse_0bdtr, 0, __pyx_n_s_pyx_fuse_0bdtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_545__pyx_fuse_1bdtr, 0, __pyx_n_s_pyx_fuse_1bdtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_17bdtr, 0, __pyx_n_s_bdtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bdtr, __pyx_t_3) < 0) __PYX_ERR(1, 1775, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":1784
 *         return NPY_NAN
 * 
 * cpdef double bdtrc(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtrc"""
 *     if dl_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_549__pyx_fuse_0bdtrc, 0, __pyx_n_s_pyx_fuse_0bdtrc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_551__pyx_fuse_1bdtrc, 0, __pyx_n_s_pyx_fuse_1bdtrc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_long, __pyx_t_1) < 0) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_19bdtrc, 0, __pyx_n_s_bdtrc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bdtrc, __pyx_t_1) < 0) __PYX_ERR(1, 1784, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":1793
 *         return NPY_NAN
 * 
 * cpdef double bdtri(double x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.bdtri"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_555__pyx_fuse_0bdtri, 0, __pyx_n_s_pyx_fuse_0bdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_557__pyx_fuse_1bdtri, 0, __pyx_n_s_pyx_fuse_1bdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_21bdtri, 0, __pyx_n_s_bdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bdtri, __pyx_t_3) < 0) __PYX_ERR(1, 1793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":1922
 *     return _func_cotdg(x0)
 * 
 * cpdef Dd_number_t dawsn(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.dawsn"""
 *     if Dd_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_561__pyx_fuse_0dawsn, 0, __pyx_n_s_pyx_fuse_0dawsn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_563__pyx_fuse_1dawsn, 0, __pyx_n_s_pyx_fuse_1dawsn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_83dawsn, 0, __pyx_n_s_dawsn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_dawsn, __pyx_t_1) < 0) __PYX_ERR(1, 1922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":1946
 *     _func_ellpj(x0, x1, y0, y1, y2, y3)
 * 
 * def _ellipj_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_89_ellipj_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ellipj_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 1946, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":1970
 *     return _func_entr(x0)
 * 
 * cpdef Dd_number_t erf(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erf"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_567__pyx_fuse_0erf, 0, __pyx_n_s_pyx_fuse_0erf, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_569__pyx_fuse_1erf, 0, __pyx_n_s_pyx_fuse_1erf, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_99erf, 0, __pyx_n_s_erf, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_erf, __pyx_t_3) < 0) __PYX_ERR(1, 1970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":1982
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfc(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfc"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_573__pyx_fuse_0erfc, 0, __pyx_n_s_pyx_fuse_0erfc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_575__pyx_fuse_1erfc, 0, __pyx_n_s_pyx_fuse_1erfc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_101erfc, 0, __pyx_n_s_erfc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_erfc, __pyx_t_1) < 0) __PYX_ERR(1, 1982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":1994
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfcx(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfcx"""
 *     if Dd_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_579__pyx_fuse_0erfcx, 0, __pyx_n_s_pyx_fuse_0erfcx, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_581__pyx_fuse_1erfcx, 0, __pyx_n_s_pyx_fuse_1erfcx, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_103erfcx, 0, __pyx_n_s_erfcx, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_erfcx, __pyx_t_3) < 0) __PYX_ERR(1, 1994, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2006
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t erfi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.erfi"""
 *     if Dd_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_585__pyx_fuse_0erfi, 0, __pyx_n_s_pyx_fuse_0erfi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_587__pyx_fuse_1erfi, 0, __pyx_n_s_pyx_fuse_1erfi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_105erfi, 0, __pyx_n_s_erfi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_erfi, __pyx_t_1) < 0) __PYX_ERR(1, 2006, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2026
 *     return _func_erfcinv(x0)
 * 
 * cpdef Dd_number_t eval_chebyc(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyc"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_591__pyx_fuse_0_0eval_chebyc, 0, __pyx_n_s_pyx_fuse_0_0eval_chebyc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_593__pyx_fuse_0_1eval_chebyc, 0, __pyx_n_s_pyx_fuse_0_1eval_chebyc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double, __pyx_t_3) < 0) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_595__pyx_fuse_1_0eval_chebyc, 0, __pyx_n_s_pyx_fuse_1_0eval_chebyc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_597__pyx_fuse_1_1eval_chebyc, 0, __pyx_n_s_pyx_fuse_1_1eval_chebyc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_2, __pyx_t_3) < 0) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_111eval_chebyc, 0, __pyx_n_s_eval_chebyc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_chebyc, __pyx_t_3) < 0) __PYX_ERR(1, 2026, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2040
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebys(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebys"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_601__pyx_fuse_0_0eval_chebys, 0, __pyx_n_s_pyx_fuse_0_0eval_chebys, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_603__pyx_fuse_0_1eval_chebys, 0, __pyx_n_s_pyx_fuse_0_1eval_chebys, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double, __pyx_t_1) < 0) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_605__pyx_fuse_1_0eval_chebys, 0, __pyx_n_s_pyx_fuse_1_0eval_chebys, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_607__pyx_fuse_1_1eval_chebys, 0, __pyx_n_s_pyx_fuse_1_1eval_chebys, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_2, __pyx_t_1) < 0) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_113eval_chebys, 0, __pyx_n_s_eval_chebys, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_chebys, __pyx_t_1) < 0) __PYX_ERR(1, 2040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2054
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_611__pyx_fuse_0_0eval_chebyt, 0, __pyx_n_s_pyx_fuse_0_0eval_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_613__pyx_fuse_0_1eval_chebyt, 0, __pyx_n_s_pyx_fuse_0_1eval_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double, __pyx_t_3) < 0) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_615__pyx_fuse_1_0eval_chebyt, 0, __pyx_n_s_pyx_fuse_1_0eval_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_617__pyx_fuse_1_1eval_chebyt, 0, __pyx_n_s_pyx_fuse_1_1eval_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_2, __pyx_t_3) < 0) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_115eval_chebyt, 0, __pyx_n_s_eval_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_chebyt, __pyx_t_3) < 0) __PYX_ERR(1, 2054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2068
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_621__pyx_fuse_0_0eval_chebyu, 0, __pyx_n_s_pyx_fuse_0_0eval_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_623__pyx_fuse_0_1eval_chebyu, 0, __pyx_n_s_pyx_fuse_0_1eval_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double, __pyx_t_1) < 0) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_625__pyx_fuse_1_0eval_chebyu, 0, __pyx_n_s_pyx_fuse_1_0eval_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_627__pyx_fuse_1_1eval_chebyu, 0, __pyx_n_s_pyx_fuse_1_1eval_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_2, __pyx_t_1) < 0) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_117eval_chebyu, 0, __pyx_n_s_eval_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_chebyu, __pyx_t_1) < 0) __PYX_ERR(1, 2068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2082
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_gegenbauer(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_gegenbauer"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_631__pyx_fuse_0_0eval_gegenbauer, 0, __pyx_n_s_pyx_fuse_0_0eval_gegenbauer, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_633__pyx_fuse_0_1eval_gegenbauer, 0, __pyx_n_s_pyx_fuse_0_1eval_gegenbauer, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double, __pyx_t_3) < 0) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_635__pyx_fuse_1_0eval_gegenbauer, 0, __pyx_n_s_pyx_fuse_1_0eval_gegenbauer, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_637__pyx_fuse_1_1eval_gegenbauer, 0, __pyx_n_s_pyx_fuse_1_1eval_gegenbauer, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_2, __pyx_t_3) < 0) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_119eval_gegenbauer, 0, __pyx_n_s_eval_gegenbauer, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_gegenbauer, __pyx_t_3) < 0) __PYX_ERR(1, 2082, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2096
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_genlaguerre(dl_number_t x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_genlaguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_641__pyx_fuse_0_0eval_genlaguerre, 0, __pyx_n_s_pyx_fuse_0_0eval_genlaguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_643__pyx_fuse_0_1eval_genlaguerre, 0, __pyx_n_s_pyx_fuse_0_1eval_genlaguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double, __pyx_t_1) < 0) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_645__pyx_fuse_1_0eval_genlaguerre, 0, __pyx_n_s_pyx_fuse_1_0eval_genlaguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_647__pyx_fuse_1_1eval_genlaguerre, 0, __pyx_n_s_pyx_fuse_1_1eval_genlaguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_2, __pyx_t_1) < 0) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_121eval_genlaguerre, 0, __pyx_n_s_eval_genlaguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_genlaguerre, __pyx_t_1) < 0) __PYX_ERR(1, 2096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2118
 *     return _func_eval_hermitenorm(x0, x1)
 * 
 * cpdef Dd_number_t eval_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_651__pyx_fuse_0_0eval_jacobi, 0, __pyx_n_s_pyx_fuse_0_0eval_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_653__pyx_fuse_0_1eval_jacobi, 0, __pyx_n_s_pyx_fuse_0_1eval_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double, __pyx_t_3) < 0) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_655__pyx_fuse_1_0eval_jacobi, 0, __pyx_n_s_pyx_fuse_1_0eval_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_657__pyx_fuse_1_1eval_jacobi, 0, __pyx_n_s_pyx_fuse_1_1eval_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_2, __pyx_t_3) < 0) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_127eval_jacobi, 0, __pyx_n_s_eval_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_jacobi, __pyx_t_3) < 0) __PYX_ERR(1, 2118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2132
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_laguerre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_laguerre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_661__pyx_fuse_0_0eval_laguerre, 0, __pyx_n_s_pyx_fuse_0_0eval_laguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_663__pyx_fuse_0_1eval_laguerre, 0, __pyx_n_s_pyx_fuse_0_1eval_laguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double, __pyx_t_1) < 0) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_665__pyx_fuse_1_0eval_laguerre, 0, __pyx_n_s_pyx_fuse_1_0eval_laguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_667__pyx_fuse_1_1eval_laguerre, 0, __pyx_n_s_pyx_fuse_1_1eval_laguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_2, __pyx_t_1) < 0) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_129eval_laguerre, 0, __pyx_n_s_eval_laguerre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__68)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_laguerre, __pyx_t_1) < 0) __PYX_ERR(1, 2132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2146
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_671__pyx_fuse_0_0eval_legendre, 0, __pyx_n_s_pyx_fuse_0_0eval_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_673__pyx_fuse_0_1eval_legendre, 0, __pyx_n_s_pyx_fuse_0_1eval_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double, __pyx_t_3) < 0) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_675__pyx_fuse_1_0eval_legendre, 0, __pyx_n_s_pyx_fuse_1_0eval_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_677__pyx_fuse_1_1eval_legendre, 0, __pyx_n_s_pyx_fuse_1_1eval_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_2, __pyx_t_3) < 0) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_131eval_legendre, 0, __pyx_n_s_eval_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_legendre, __pyx_t_3) < 0) __PYX_ERR(1, 2146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2160
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyt(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyt"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_681__pyx_fuse_0_0eval_sh_chebyt, 0, __pyx_n_s_pyx_fuse_0_0eval_sh_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_683__pyx_fuse_0_1eval_sh_chebyt, 0, __pyx_n_s_pyx_fuse_0_1eval_sh_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double, __pyx_t_1) < 0) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_685__pyx_fuse_1_0eval_sh_chebyt, 0, __pyx_n_s_pyx_fuse_1_0eval_sh_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_687__pyx_fuse_1_1eval_sh_chebyt, 0, __pyx_n_s_pyx_fuse_1_1eval_sh_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_2, __pyx_t_1) < 0) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_133eval_sh_chebyt, 0, __pyx_n_s_eval_sh_chebyt, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_sh_chebyt, __pyx_t_1) < 0) __PYX_ERR(1, 2160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2174
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_chebyu(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_chebyu"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_691__pyx_fuse_0_0eval_sh_chebyu, 0, __pyx_n_s_pyx_fuse_0_0eval_sh_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_693__pyx_fuse_0_1eval_sh_chebyu, 0, __pyx_n_s_pyx_fuse_0_1eval_sh_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double, __pyx_t_3) < 0) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_695__pyx_fuse_1_0eval_sh_chebyu, 0, __pyx_n_s_pyx_fuse_1_0eval_sh_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_697__pyx_fuse_1_1eval_sh_chebyu, 0, __pyx_n_s_pyx_fuse_1_1eval_sh_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_2, __pyx_t_3) < 0) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_135eval_sh_chebyu, 0, __pyx_n_s_eval_sh_chebyu, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_sh_chebyu, __pyx_t_3) < 0) __PYX_ERR(1, 2174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2188
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_jacobi(dl_number_t x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_jacobi"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_701__pyx_fuse_0_0eval_sh_jacobi, 0, __pyx_n_s_pyx_fuse_0_0eval_sh_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_703__pyx_fuse_0_1eval_sh_jacobi, 0, __pyx_n_s_pyx_fuse_0_1eval_sh_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_double, __pyx_t_1) < 0) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_705__pyx_fuse_1_0eval_sh_jacobi, 0, __pyx_n_s_pyx_fuse_1_0eval_sh_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_707__pyx_fuse_1_1eval_sh_jacobi, 0, __pyx_n_s_pyx_fuse_1_1eval_sh_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double_2, __pyx_t_1) < 0) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_137eval_sh_jacobi, 0, __pyx_n_s_eval_sh_jacobi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_sh_jacobi, __pyx_t_1) < 0) __PYX_ERR(1, 2188, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2202
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t eval_sh_legendre(dl_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.eval_sh_legendre"""
 *     if dl_number_t is double and Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_5scipy_7special_14cython_special_711__pyx_fuse_0_0eval_sh_legendre, 0, __pyx_n_s_pyx_fuse_0_0eval_sh_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_5scipy_7special_14cython_special_713__pyx_fuse_0_1eval_sh_legendre, 0, __pyx_n_s_pyx_fuse_0_1eval_sh_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_double, __pyx_t_3) < 0) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_5scipy_7special_14cython_special_715__pyx_fuse_1_0eval_sh_legendre, 0, __pyx_n_s_pyx_fuse_1_0eval_sh_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_5scipy_7special_14cython_special_717__pyx_fuse_1_1eval_sh_legendre, 0, __pyx_n_s_pyx_fuse_1_1eval_sh_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_long_double_2, __pyx_t_3) < 0) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_139eval_sh_legendre, 0, __pyx_n_s_eval_sh_legendre, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eval_sh_legendre, __pyx_t_3) < 0) __PYX_ERR(1, 2202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2216
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t exp1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.exp1"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_721__pyx_fuse_0exp1, 0, __pyx_n_s_pyx_fuse_0exp1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_723__pyx_fuse_1exp1, 0, __pyx_n_s_pyx_fuse_1exp1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_141exp1, 0, __pyx_n_s_exp1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_exp1, __pyx_t_1) < 0) __PYX_ERR(1, 2216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2236
 *     return _func_exp2(x0)
 * 
 * cpdef Dd_number_t expi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expi"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_727__pyx_fuse_0expi, 0, __pyx_n_s_pyx_fuse_0expi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_729__pyx_fuse_1expi, 0, __pyx_n_s_pyx_fuse_1expi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_147expi, 0, __pyx_n_s_expi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_expi, __pyx_t_3) < 0) __PYX_ERR(1, 2236, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2248
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t expit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expit"""
 *     if dfg_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_733__pyx_fuse_0expit, 0, __pyx_n_s_pyx_fuse_0expit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_735__pyx_fuse_1expit, 0, __pyx_n_s_pyx_fuse_1expit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float, __pyx_t_1) < 0) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_5scipy_7special_14cython_special_737__pyx_fuse_2expit, 0, __pyx_n_s_pyx_fuse_2expit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double, __pyx_t_1) < 0) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_149expit, 0, __pyx_n_s_expit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_expit, __pyx_t_1) < 0) __PYX_ERR(1, 2248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2264
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t expm1(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expm1"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_741__pyx_fuse_0expm1, 0, __pyx_n_s_pyx_fuse_0expm1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_743__pyx_fuse_1expm1, 0, __pyx_n_s_pyx_fuse_1expm1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_151expm1, 0, __pyx_n_s_expm1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_expm1, __pyx_t_3) < 0) __PYX_ERR(1, 2264, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2276
 *             return NPY_NAN
 * 
 * cpdef double expn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.expn"""
 *     if dl_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_747__pyx_fuse_0expn, 0, __pyx_n_s_pyx_fuse_0expn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_749__pyx_fuse_1expn, 0, __pyx_n_s_pyx_fuse_1expn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_long, __pyx_t_1) < 0) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_153expn, 0, __pyx_n_s_expn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_expn, __pyx_t_1) < 0) __PYX_ERR(1, 2276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2323
 *             y1[0] = NPY_NAN
 * 
 * def _fresnel_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_753_fresnel_pywrap, 0, __pyx_n_s_fresnel_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_755_fresnel_pywrap, 0, __pyx_n_s_fresnel_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_165_fresnel_pywrap, 0, __pyx_n_s_fresnel_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fresnel_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 2323, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2329
 *     return y0, y1
 * 
 * cpdef Dd_number_t gamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.gamma"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_759__pyx_fuse_0gamma, 0, __pyx_n_s_pyx_fuse_0gamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_761__pyx_fuse_1gamma, 0, __pyx_n_s_pyx_fuse_1gamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_167gamma, 0, __pyx_n_s_gamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gamma, __pyx_t_1) < 0) __PYX_ERR(1, 2329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2405
 *     return _func_huber(x0, x1)
 * 
 * cpdef Dd_number_t hyp0f1(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp0f1"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_765__pyx_fuse_0hyp0f1, 0, __pyx_n_s_pyx_fuse_0hyp0f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_767__pyx_fuse_1hyp0f1, 0, __pyx_n_s_pyx_fuse_1hyp0f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_201hyp0f1, 0, __pyx_n_s_hyp0f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_hyp0f1, __pyx_t_3) < 0) __PYX_ERR(1, 2405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2417
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp1f1(double x0, double x1, Dd_number_t x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp1f1"""
 *     if Dd_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_771__pyx_fuse_0hyp1f1, 0, __pyx_n_s_pyx_fuse_0hyp1f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_773__pyx_fuse_1hyp1f1, 0, __pyx_n_s_pyx_fuse_1hyp1f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_203hyp1f1, 0, __pyx_n_s_hyp1f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_hyp1f1, __pyx_t_1) < 0) __PYX_ERR(1, 2417, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2429
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t hyp2f1(double x0, double x1, double x2, Dd_number_t x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.hyp2f1"""
 *     if Dd_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_777__pyx_fuse_0hyp2f1, 0, __pyx_n_s_pyx_fuse_0hyp2f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_779__pyx_fuse_1hyp2f1, 0, __pyx_n_s_pyx_fuse_1hyp2f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_205hyp2f1, 0, __pyx_n_s_hyp2f1, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_hyp2f1, __pyx_t_3) < 0) __PYX_ERR(1, 2429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2473
 *     _func_it2i0k0_wrap(x0, y0, y1)
 * 
 * def _it2i0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_221_it2i0k0_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_it2i0k0_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 2473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2483
 *     _func_it2j0y0_wrap(x0, y0, y1)
 * 
 * def _it2j0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_223_it2j0y0_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_it2j0y0_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 2483, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2497
 *     _func_itairy_wrap(x0, y0, y1, y2, y3)
 * 
 * def _itairy_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_227_itairy_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2497, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_itairy_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 2497, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2509
 *     _func_it1i0k0_wrap(x0, y0, y1)
 * 
 * def _iti0k0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_229_iti0k0_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_iti0k0_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 2509, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2519
 *     _func_it1j0y0_wrap(x0, y0, y1)
 * 
 * def _itj0y0_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_231_itj0y0_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_itj0y0_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 2519, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2533
 *     return _func_itstruve0_wrap(x0)
 * 
 * cpdef Dd_number_t iv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.iv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_783__pyx_fuse_0iv, 0, __pyx_n_s_pyx_fuse_0iv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_785__pyx_fuse_1iv, 0, __pyx_n_s_pyx_fuse_1iv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_237iv, 0, __pyx_n_s_iv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_iv, __pyx_t_1) < 0) __PYX_ERR(1, 2533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2545
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t ive(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ive"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_789__pyx_fuse_0ive, 0, __pyx_n_s_pyx_fuse_0ive, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_791__pyx_fuse_1ive, 0, __pyx_n_s_pyx_fuse_1ive, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_239ive, 0, __pyx_n_s_ive, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ive, __pyx_t_3) < 0) __PYX_ERR(1, 2545, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2565
 *     return _func_j1(x0)
 * 
 * cpdef Dd_number_t jv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_795__pyx_fuse_0jv, 0, __pyx_n_s_pyx_fuse_0jv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_797__pyx_fuse_1jv, 0, __pyx_n_s_pyx_fuse_1jv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_245jv, 0, __pyx_n_s_jv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_jv, __pyx_t_1) < 0) __PYX_ERR(1, 2565, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2577
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t jve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.jve"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_801__pyx_fuse_0jve, 0, __pyx_n_s_pyx_fuse_0jve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_803__pyx_fuse_1jve, 0, __pyx_n_s_pyx_fuse_1jve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_247jve, 0, __pyx_n_s_jve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_jve, __pyx_t_3) < 0) __PYX_ERR(1, 2577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2625
 *     y3[0] = _complexstuff.double_complex_from_npy_cdouble(tmp3)
 * 
 * def _kelvin_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_261_kelvin_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_kelvin_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 2625, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2645
 *     return _func_kl_div(x0, x1)
 * 
 * cpdef double kn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kn"""
 *     if dl_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_807__pyx_fuse_0kn, 0, __pyx_n_s_pyx_fuse_0kn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_809__pyx_fuse_1kn, 0, __pyx_n_s_pyx_fuse_1kn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_long, __pyx_t_1) < 0) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_269kn, 0, __pyx_n_s_kn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_kn, __pyx_t_1) < 0) __PYX_ERR(1, 2645, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2662
 *     return _func_kolmogorov(x0)
 * 
 * cpdef Dd_number_t kv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_813__pyx_fuse_0kv, 0, __pyx_n_s_pyx_fuse_0kv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_815__pyx_fuse_1kv, 0, __pyx_n_s_pyx_fuse_1kv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_275kv, 0, __pyx_n_s_kv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_kv, __pyx_t_3) < 0) __PYX_ERR(1, 2662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2674
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t kve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.kve"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_819__pyx_fuse_0kve, 0, __pyx_n_s_pyx_fuse_0kve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_821__pyx_fuse_1kve, 0, __pyx_n_s_pyx_fuse_1kve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_277kve, 0, __pyx_n_s_kve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_kve, __pyx_t_1) < 0) __PYX_ERR(1, 2674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2686
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log1p(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log1p"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_825__pyx_fuse_0log1p, 0, __pyx_n_s_pyx_fuse_0log1p, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_827__pyx_fuse_1log1p, 0, __pyx_n_s_pyx_fuse_1log1p, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_279log1p, 0, __pyx_n_s_log1p, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_log1p, __pyx_t_3) < 0) __PYX_ERR(1, 2686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2698
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t log_ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.log_ndtr"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_831__pyx_fuse_0log_ndtr, 0, __pyx_n_s_pyx_fuse_0log_ndtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_833__pyx_fuse_1log_ndtr, 0, __pyx_n_s_pyx_fuse_1log_ndtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_281log_ndtr, 0, __pyx_n_s_log_ndtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_log_ndtr, __pyx_t_1) < 0) __PYX_ERR(1, 2698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2710
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t loggamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.loggamma"""
 *     if Dd_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_837__pyx_fuse_0loggamma, 0, __pyx_n_s_pyx_fuse_0loggamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_839__pyx_fuse_1loggamma, 0, __pyx_n_s_pyx_fuse_1loggamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_283loggamma, 0, __pyx_n_s_loggamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_loggamma, __pyx_t_3) < 0) __PYX_ERR(1, 2710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2722
 *             return NPY_NAN
 * 
 * cpdef dfg_number_t logit(dfg_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.logit"""
 *     if dfg_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_843__pyx_fuse_0logit, 0, __pyx_n_s_pyx_fuse_0logit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_845__pyx_fuse_1logit, 0, __pyx_n_s_pyx_fuse_1logit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float, __pyx_t_1) < 0) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_5scipy_7special_14cython_special_847__pyx_fuse_2logit, 0, __pyx_n_s_pyx_fuse_2logit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_long_double, __pyx_t_1) < 0) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_285logit, 0, __pyx_n_s_logit, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_logit, __pyx_t_1) < 0) __PYX_ERR(1, 2722, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2754
 *     _func_cem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_cem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_293_mathieu_cem_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mathieu_cem_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2754, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2764
 *     _func_mcm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_295_mathieu_modcem1_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2764, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mathieu_modcem1_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2764, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2774
 *     _func_mcm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modcem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_297_mathieu_modcem2_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mathieu_modcem2_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2774, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2784
 *     _func_msm1_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem1_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_299_mathieu_modsem1_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mathieu_modsem1_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2784, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2794
 *     _func_msm2_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_modsem2_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_301_mathieu_modsem2_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mathieu_modsem2_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2804
 *     _func_sem_wrap(x0, x1, x2, y0, y1)
 * 
 * def _mathieu_sem_pywrap(double x0, double x1, double x2):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_303_mathieu_sem_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_mathieu_sem_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2804, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2818
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelm_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_305_modfresnelm_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_modfresnelm_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2832
 *     y1[0] = _complexstuff.double_complex_from_npy_cdouble(tmp1)
 * 
 * def _modfresnelp_pywrap(double x0):             # <<<<<<<<<<<<<<
 *     cdef double complex y0
 *     cdef double complex y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_307_modfresnelp_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_modfresnelp_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2832, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2842
 *     return _func_struve_l(x0, x1)
 * 
 * cpdef double nbdtr(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtr"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_851__pyx_fuse_0nbdtr, 0, __pyx_n_s_pyx_fuse_0nbdtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_853__pyx_fuse_1nbdtr, 0, __pyx_n_s_pyx_fuse_1nbdtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_311nbdtr, 0, __pyx_n_s_nbdtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nbdtr, __pyx_t_3) < 0) __PYX_ERR(1, 2842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2851
 *         return NPY_NAN
 * 
 * cpdef double nbdtrc(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtrc"""
 *     if dl_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_857__pyx_fuse_0nbdtrc, 0, __pyx_n_s_pyx_fuse_0nbdtrc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_859__pyx_fuse_1nbdtrc, 0, __pyx_n_s_pyx_fuse_1nbdtrc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_long, __pyx_t_1) < 0) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_313nbdtrc, 0, __pyx_n_s_nbdtrc, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nbdtrc, __pyx_t_1) < 0) __PYX_ERR(1, 2851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2860
 *         return NPY_NAN
 * 
 * cpdef double nbdtri(dl_number_t x0, dl_number_t x1, double x2) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.nbdtri"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_863__pyx_fuse_0nbdtri, 0, __pyx_n_s_pyx_fuse_0nbdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__154)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_865__pyx_fuse_1nbdtri, 0, __pyx_n_s_pyx_fuse_1nbdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__154)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_315nbdtri, 0, __pyx_n_s_nbdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__154)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nbdtri, __pyx_t_3) < 0) __PYX_ERR(1, 2860, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":2913
 *     return _func_cdftnc2_wrap(x0, x1, x2)
 * 
 * cpdef Dd_number_t ndtr(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.ndtr"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_869__pyx_fuse_0ndtr, 0, __pyx_n_s_pyx_fuse_0ndtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_871__pyx_fuse_1ndtr, 0, __pyx_n_s_pyx_fuse_1ndtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_339ndtr, 0, __pyx_n_s_ndtr, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ndtr, __pyx_t_1) < 0) __PYX_ERR(1, 2913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2941
 *     y0[0] = _func_oblate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_347_obl_ang1_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_obl_ang1_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2951
 *     _func_oblate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_349_obl_ang1_cv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_obl_ang1_cv_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2965
 *     y0[0] = _func_oblate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_353_obl_rad1_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_obl_rad1_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2965, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2975
 *     _func_oblate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_355_obl_rad1_cv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_obl_rad1_cv_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2985
 *     y0[0] = _func_oblate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _obl_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_357_obl_rad2_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_obl_rad2_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2985, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":2995
 *     _func_oblate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _obl_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_359_obl_rad2_cv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_obl_rad2_cv_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 2995, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3009
 *     _func_pbdv_wrap(x0, x1, y0, y1)
 * 
 * def _pbdv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_363_pbdv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pbdv_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 3009, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3019
 *     _func_pbvv_wrap(x0, x1, y0, y1)
 * 
 * def _pbvv_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_365_pbvv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pbvv_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 3019, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3029
 *     _func_pbwa_wrap(x0, x1, y0, y1)
 * 
 * def _pbwa_pywrap(double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_367_pbwa_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pbwa_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 3029, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3043
 *     return _func_pdtrc(x0, x1)
 * 
 * cpdef double pdtri(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.pdtri"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_875__pyx_fuse_0pdtri, 0, __pyx_n_s_pyx_fuse_0pdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__176)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_877__pyx_fuse_1pdtri, 0, __pyx_n_s_pyx_fuse_1pdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__176)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_373pdtri, 0, __pyx_n_s_pdtri, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__176)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pdtri, __pyx_t_3) < 0) __PYX_ERR(1, 3043, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3064
 *     y0[0] = _func_prolate_aswfa_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_ang1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_379_pro_ang1_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pro_ang1_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 3064, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3074
 *     _func_prolate_aswfa_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_ang1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_381_pro_ang1_cv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pro_ang1_cv_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 3074, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3088
 *     y0[0] = _func_prolate_radial1_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad1_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_385_pro_rad1_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pro_rad1_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 3088, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3098
 *     _func_prolate_radial1_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad1_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_387_pro_rad1_cv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pro_rad1_cv_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 3098, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3108
 *     y0[0] = _func_prolate_radial2_nocv_wrap(x0, x1, x2, x3, y1)
 * 
 * def _pro_rad2_pywrap(double x0, double x1, double x2, double x3):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_389_pro_rad2_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pro_rad2_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 3108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3118
 *     _func_prolate_radial2_wrap(x0, x1, x2, x3, x4, y0, y1)
 * 
 * def _pro_rad2_cv_pywrap(double x0, double x1, double x2, double x3, double x4):             # <<<<<<<<<<<<<<
 *     cdef double y0
 *     cdef double y1
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_391_pro_rad2_cv_pywrap, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pro_rad2_cv_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 3118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3128
 *     return _func_pseudo_huber(x0, x1)
 * 
 * cpdef Dd_number_t psi(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.psi"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_881__pyx_fuse_0psi, 0, __pyx_n_s_pyx_fuse_0psi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_883__pyx_fuse_1psi, 0, __pyx_n_s_pyx_fuse_1psi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_395psi, 0, __pyx_n_s_psi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_psi, __pyx_t_1) < 0) __PYX_ERR(1, 3128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3148
 *     return _func_rel_entr(x0, x1)
 * 
 * cpdef Dd_number_t rgamma(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.rgamma"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_887__pyx_fuse_0rgamma, 0, __pyx_n_s_pyx_fuse_0rgamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_889__pyx_fuse_1rgamma, 0, __pyx_n_s_pyx_fuse_1rgamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_401rgamma, 0, __pyx_n_s_rgamma, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rgamma, __pyx_t_3) < 0) __PYX_ERR(1, 3148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3178
 *             y1[0] = NPY_NAN
 * 
 * def _shichi_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_893_shichi_pywrap, 0, __pyx_n_s_shichi_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_895_shichi_pywrap, 0, __pyx_n_s_shichi_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_405_shichi_pywrap, 0, __pyx_n_s_shichi_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_shichi_pywrap, __pyx_t_1) < 0) __PYX_ERR(1, 3178, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3198
 *             y1[0] = NPY_NAN
 * 
 * def _sici_pywrap(Dd_number_t x0):             # <<<<<<<<<<<<<<
 *     cdef Dd_number_t y0
 *     cdef Dd_number_t y1
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_899_sici_pywrap, 0, __pyx_n_s_sici_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_901_sici_pywrap, 0, __pyx_n_s_sici_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_407_sici_pywrap, 0, __pyx_n_s_sici_pywrap, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sici_pywrap, __pyx_t_3) < 0) __PYX_ERR(1, 3198, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3208
 *     return _func_sindg(x0)
 * 
 * cpdef double smirnov(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnov"""
 *     if dl_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_905__pyx_fuse_0smirnov, 0, __pyx_n_s_pyx_fuse_0smirnov, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_907__pyx_fuse_1smirnov, 0, __pyx_n_s_pyx_fuse_1smirnov, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_long, __pyx_t_1) < 0) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_411smirnov, 0, __pyx_n_s_smirnov, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_smirnov, __pyx_t_1) < 0) __PYX_ERR(1, 3208, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3217
 *         return NPY_NAN
 * 
 * cpdef double smirnovi(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.smirnovi"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_911__pyx_fuse_0smirnovi, 0, __pyx_n_s_pyx_fuse_0smirnovi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_913__pyx_fuse_1smirnovi, 0, __pyx_n_s_pyx_fuse_1smirnovi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_413smirnovi, 0, __pyx_n_s_smirnovi, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_smirnovi, __pyx_t_3) < 0) __PYX_ERR(1, 3217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3226
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t spence(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.spence"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_917__pyx_fuse_0spence, 0, __pyx_n_s_pyx_fuse_0spence, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_919__pyx_fuse_1spence, 0, __pyx_n_s_pyx_fuse_1spence, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_415spence, 0, __pyx_n_s_spence, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_spence, __pyx_t_1) < 0) __PYX_ERR(1, 3226, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3238
 *             return NPY_NAN
 * 
 * cpdef double complex sph_harm(dl_number_t x0, dl_number_t x1, double x2, double x3) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.sph_harm"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_923__pyx_fuse_0sph_harm, 0, __pyx_n_s_pyx_fuse_0sph_harm, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_925__pyx_fuse_1sph_harm, 0, __pyx_n_s_pyx_fuse_1sph_harm, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_417sph_harm, 0, __pyx_n_s_sph_harm, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sph_harm, __pyx_t_3) < 0) __PYX_ERR(1, 3238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3275
 *     return (<double complex(*)(double complex) nogil>scipy.special._ufuncs_cxx._export_faddeeva_w)(x0)
 * 
 * cpdef Dd_number_t wrightomega(Dd_number_t x0) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.wrightomega"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_929__pyx_fuse_0wrightomega, 0, __pyx_n_s_pyx_fuse_0wrightomega, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_931__pyx_fuse_1wrightomega, 0, __pyx_n_s_pyx_fuse_1wrightomega, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_433wrightomega, 0, __pyx_n_s_wrightomega, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_wrightomega, __pyx_t_1) < 0) __PYX_ERR(1, 3275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3287
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlog1py(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlog1py"""
 *     if Dd_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_935__pyx_fuse_0xlog1py, 0, __pyx_n_s_pyx_fuse_0xlog1py, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_937__pyx_fuse_1xlog1py, 0, __pyx_n_s_pyx_fuse_1xlog1py, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_435xlog1py, 0, __pyx_n_s_xlog1py, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_xlog1py, __pyx_t_3) < 0) __PYX_ERR(1, 3287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3299
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t xlogy(Dd_number_t x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.xlogy"""
 *     if Dd_number_t is double:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_941__pyx_fuse_0xlogy, 0, __pyx_n_s_pyx_fuse_0xlogy, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_943__pyx_fuse_1xlogy, 0, __pyx_n_s_pyx_fuse_1xlogy, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_437xlogy, 0, __pyx_n_s_xlogy, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_xlogy, __pyx_t_1) < 0) __PYX_ERR(1, 3299, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3319
 *     return _func_y1(x0)
 * 
 * cpdef double yn(dl_number_t x0, double x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yn"""
 *     if dl_number_t is double:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_947__pyx_fuse_0yn, 0, __pyx_n_s_pyx_fuse_0yn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_949__pyx_fuse_1yn, 0, __pyx_n_s_pyx_fuse_1yn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_long, __pyx_t_3) < 0) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_443yn, 0, __pyx_n_s_yn, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_yn, __pyx_t_3) < 0) __PYX_ERR(1, 3319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3328
 *         return NPY_NAN
 * 
 * cpdef Dd_number_t yv(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yv"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_953__pyx_fuse_0yv, 0, __pyx_n_s_pyx_fuse_0yv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_1) < 0) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_955__pyx_fuse_1yv, 0, __pyx_n_s_pyx_fuse_1yv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_double, __pyx_t_1) < 0) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_445yv, 0, __pyx_n_s_yv, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_yv, __pyx_t_1) < 0) __PYX_ERR(1, 3328, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "scipy/special/cython_special.pyx":3340
 *             return NPY_NAN
 * 
 * cpdef Dd_number_t yve(double x0, Dd_number_t x1) nogil:             # <<<<<<<<<<<<<<
 *     """See the documentation for scipy.special.yve"""
 *     if Dd_number_t is double_complex:
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_7special_14cython_special_959__pyx_fuse_0yve, 0, __pyx_n_s_pyx_fuse_0yve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_7special_14cython_special_961__pyx_fuse_1yve, 0, __pyx_n_s_pyx_fuse_1yve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_double, __pyx_t_3) < 0) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_7special_14cython_special_447yve, 0, __pyx_n_s_yve, NULL, __pyx_n_s_scipy_special_cython_special, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_yve, __pyx_t_3) < 0) __PYX_ERR(1, 3340, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3356
 *     return _func_zetac(x0)
 * 
 * def _bench_airy_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_451_bench_airy_d_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_airy_d_py, __pyx_t_3) < 0) __PYX_ERR(1, 3356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3361
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double y0
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_453_bench_airy_d_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_airy_d_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3361, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3370
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_airy_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_455_bench_airy_D_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_airy_D_py, __pyx_t_3) < 0) __PYX_ERR(1, 3370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3375
 *         _ufuncs.airy(x0)
 * 
 * def _bench_airy_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     cdef double complex y0
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_457_bench_airy_D_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_airy_D_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3375, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3384
 *         airy(x0, &y0, &y1, &y2, &y3)
 * 
 * def _bench_beta_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_459_bench_beta_dd_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_beta_dd_py, __pyx_t_3) < 0) __PYX_ERR(1, 3384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3389
 *         _ufuncs.beta(x0, x1)
 * 
 * def _bench_beta_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_461_bench_beta_dd_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_beta_dd_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3394
 *         beta(x0, x1)
 * 
 * def _bench_erf_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_463_bench_erf_d_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_erf_d_py, __pyx_t_3) < 0) __PYX_ERR(1, 3394, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3399
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_465_bench_erf_d_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_erf_d_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3399, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3404
 *         erf(x0)
 * 
 * def _bench_erf_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_467_bench_erf_D_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_erf_D_py, __pyx_t_3) < 0) __PYX_ERR(1, 3404, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3409
 *         _ufuncs.erf(x0)
 * 
 * def _bench_erf_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_469_bench_erf_D_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_erf_D_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3409, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3414
 *         erf(x0)
 * 
 * def _bench_exprel_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_471_bench_exprel_d_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_exprel_d_py, __pyx_t_3) < 0) __PYX_ERR(1, 3414, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3419
 *         _ufuncs.exprel(x0)
 * 
 * def _bench_exprel_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_473_bench_exprel_d_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_exprel_d_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3419, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3424
 *         exprel(x0)
 * 
 * def _bench_gamma_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_475_bench_gamma_d_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_gamma_d_py, __pyx_t_3) < 0) __PYX_ERR(1, 3424, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3429
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_477_bench_gamma_d_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_gamma_d_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3434
 *         gamma(x0)
 * 
 * def _bench_gamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_479_bench_gamma_D_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_gamma_D_py, __pyx_t_3) < 0) __PYX_ERR(1, 3434, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3439
 *         _ufuncs.gamma(x0)
 * 
 * def _bench_gamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_481_bench_gamma_D_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_gamma_D_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3439, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3444
 *         gamma(x0)
 * 
 * def _bench_jv_dd_py(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_483_bench_jv_dd_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_jv_dd_py, __pyx_t_3) < 0) __PYX_ERR(1, 3444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3449
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dd_cy(int N, double x0, double x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_485_bench_jv_dd_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_jv_dd_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3449, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3454
 *         jv(x0, x1)
 * 
 * def _bench_jv_dD_py(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_487_bench_jv_dD_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_jv_dD_py, __pyx_t_3) < 0) __PYX_ERR(1, 3454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3459
 *         _ufuncs.jv(x0, x1)
 * 
 * def _bench_jv_dD_cy(int N, double x0, double complex x1):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_489_bench_jv_dD_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_jv_dD_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3459, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3464
 *         jv(x0, x1)
 * 
 * def _bench_loggamma_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_491_bench_loggamma_D_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_loggamma_D_py, __pyx_t_3) < 0) __PYX_ERR(1, 3464, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3469
 *         _ufuncs.loggamma(x0)
 * 
 * def _bench_loggamma_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_493_bench_loggamma_D_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_loggamma_D_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3474
 *         loggamma(x0)
 * 
 * def _bench_logit_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_495_bench_logit_d_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_logit_d_py, __pyx_t_3) < 0) __PYX_ERR(1, 3474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3479
 *         _ufuncs.logit(x0)
 * 
 * def _bench_logit_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_497_bench_logit_d_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_logit_d_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3484
 *         logit(x0)
 * 
 * def _bench_psi_d_py(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_499_bench_psi_d_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_psi_d_py, __pyx_t_3) < 0) __PYX_ERR(1, 3484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3489
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_d_cy(int N, double x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_501_bench_psi_d_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_psi_d_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3489, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3494
 *         psi(x0)
 * 
 * def _bench_psi_D_py(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_503_bench_psi_D_py, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_psi_D_py, __pyx_t_3) < 0) __PYX_ERR(1, 3494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":3499
 *         _ufuncs.psi(x0)
 * 
 * def _bench_psi_D_cy(int N, double complex x0):             # <<<<<<<<<<<<<<
 *     cdef int n
 *     for n in range(N):
 */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_5scipy_7special_14cython_special_505_bench_psi_D_cy, NULL, __pyx_n_s_scipy_special_cython_special); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3499, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bench_psi_D_cy, __pyx_t_3) < 0) __PYX_ERR(1, 3499, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "scipy/special/cython_special.pyx":1
 * # This file is automatically generated by _generate_pyx.py.             # <<<<<<<<<<<<<<
 * # Do not edit manually!
 * """
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "_spence.pxd":74
 * 
 * @cython.cdivision(True)
 * cdef inline double complex cspence_series1(double complex z) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     A series centered at z = 1 which enjoys faster convergence than
 */

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init scipy.special.cython_special", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_CLEAR(__pyx_m);
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init scipy.special.cython_special");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* DictGetItem */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            if (unlikely(PyTuple_Check(key))) {
                PyObject* args = PyTuple_Pack(1, key);
                if (likely(args)) {
                    PyErr_SetObject(PyExc_KeyError, args);
                    Py_DECREF(args);
                }
            } else {
                PyErr_SetObject(PyExc_KeyError, key);
            }
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#endif

/* PyCFunctionFastCall */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
    PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    int flags = PyCFunction_GET_FLAGS(func);
    assert(PyCFunction_Check(func));
    assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
    assert(nargs >= 0);
    assert(nargs == 0 || args != NULL);
    /* _PyCFunction_FastCallDict() must not be called with an exception set,
       because it may clear it (directly or indirectly) and so the
       caller loses its exception */
    assert(!PyErr_Occurred());
    if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
        return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
    } else {
        return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
    }
}
#endif

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
        return NULL;
    }
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = func->ob_type->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallOneArg */
#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, &arg, 1);
    }
#endif
    if (likely(PyCFunction_Check(func))) {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
        } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
            return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_Pack(1, arg);
    if (unlikely(!args)) return NULL;
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}
#endif

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                        CYTHON_UNUSED PyObject *cause) {
    __Pyx_PyThreadState_declare
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_COMPILING_IN_PYPY
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#else
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (!j) return -1;
    r = PyObject_SetItem(o, j, v);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
                                               CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
            PyObject* old = PyList_GET_ITEM(o, n);
            Py_INCREF(v);
            PyList_SET_ITEM(o, n, v);
            Py_DECREF(old);
            return 1;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_ass_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return -1;
                    PyErr_Clear();
                }
            }
            return m->sq_ass_item(o, i, v);
        }
    }
#else
#if CYTHON_COMPILING_IN_PYPY
    if (is_list || (PySequence_Check(o) && !PyDict_Check(o)))
#else
    if (is_list || PySequence_Check(o))
#endif
    {
        return PySequence_SetItem(o, i, v);
    }
#endif
    return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_FAST_THREAD_STATE
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

/* PyObjectCallNoArg */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, NULL, 0);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
#else
    if (likely(PyCFunction_Check(func)))
#endif
    {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (descr != NULL) {
        *method = descr;
        return 0;
    }
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(name));
#endif
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod0 */
static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
    PyObject *method = NULL, *result = NULL;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_CallOneArg(method, obj);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) goto bad;
    result = __Pyx_PyObject_CallNoArg(method);
    Py_DECREF(method);
bad:
    return result;
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

/* RaiseNoneIterError */
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
}

/* UnpackTupleError */
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 {
      __Pyx_RaiseTooManyValuesError(index);
    }
}

/* UnpackTuple2 */
static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
        PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
    PyObject *value1 = NULL, *value2 = NULL;
#if CYTHON_COMPILING_IN_PYPY
    value1 = PySequence_ITEM(tuple, 0);  if (unlikely(!value1)) goto bad;
    value2 = PySequence_ITEM(tuple, 1);  if (unlikely(!value2)) goto bad;
#else
    value1 = PyTuple_GET_ITEM(tuple, 0);  Py_INCREF(value1);
    value2 = PyTuple_GET_ITEM(tuple, 1);  Py_INCREF(value2);
#endif
    if (decref_tuple) {
        Py_DECREF(tuple);
    }
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
#if CYTHON_COMPILING_IN_PYPY
bad:
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
#endif
}
static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
                                       int has_known_size, int decref_tuple) {
    Py_ssize_t index;
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
    iternextfunc iternext;
    iter = PyObject_GetIter(tuple);
    if (unlikely(!iter)) goto bad;
    if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
    iternext = Py_TYPE(iter)->tp_iternext;
    value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
    value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
    if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
    Py_DECREF(iter);
    *pvalue1 = value1;
    *pvalue2 = value2;
    return 0;
unpacking_failed:
    if (!has_known_size && __Pyx_IterFinish() == 0)
        __Pyx_RaiseNeedMoreValuesError(index);
bad:
    Py_XDECREF(iter);
    Py_XDECREF(value1);
    Py_XDECREF(value2);
    if (decref_tuple) { Py_XDECREF(tuple); }
    return -1;
}

/* dict_iter */
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
    *p_source_is_dict = is_dict;
    if (is_dict) {
#if !CYTHON_COMPILING_IN_PYPY
        *p_orig_length = PyDict_Size(iterable);
        Py_INCREF(iterable);
        return iterable;
#elif PY_MAJOR_VERSION >= 3
        static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
        PyObject **pp = NULL;
        if (method_name) {
            const char *name = PyUnicode_AsUTF8(method_name);
            if (strcmp(name, "iteritems") == 0) pp = &py_items;
            else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
            else if (strcmp(name, "itervalues") == 0) pp = &py_values;
            if (pp) {
                if (!*pp) {
                    *pp = PyUnicode_FromString(name + 4);
                    if (!*pp)
                        return NULL;
                }
                method_name = *pp;
            }
        }
#endif
    }
    *p_orig_length = 0;
    if (method_name) {
        PyObject* iter;
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
        if (!iterable)
            return NULL;
#if !CYTHON_COMPILING_IN_PYPY
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
            return iterable;
#endif
        iter = PyObject_GetIter(iterable);
        Py_DECREF(iterable);
        return iter;
    }
    return PyObject_GetIter(iterable);
}
static CYTHON_INLINE int __Pyx_dict_iter_next(
        PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
        PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
    PyObject* next_item;
#if !CYTHON_COMPILING_IN_PYPY
    if (source_is_dict) {
        PyObject *key, *value;
        if (unlikely(orig_length != PyDict_Size(iter_obj))) {
            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
            return -1;
        }
        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
            return 0;
        }
        if (pitem) {
            PyObject* tuple = PyTuple_New(2);
            if (unlikely(!tuple)) {
                return -1;
            }
            Py_INCREF(key);
            Py_INCREF(value);
            PyTuple_SET_ITEM(tuple, 0, key);
            PyTuple_SET_ITEM(tuple, 1, value);
            *pitem = tuple;
        } else {
            if (pkey) {
                Py_INCREF(key);
                *pkey = key;
            }
            if (pvalue) {
                Py_INCREF(value);
                *pvalue = value;
            }
        }
        return 1;
    } else if (PyTuple_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else if (PyList_CheckExact(iter_obj)) {
        Py_ssize_t pos = *ppos;
        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
        *ppos = pos + 1;
        next_item = PyList_GET_ITEM(iter_obj, pos);
        Py_INCREF(next_item);
    } else
#endif
    {
        next_item = PyIter_Next(iter_obj);
        if (unlikely(!next_item)) {
            return __Pyx_IterFinish();
        }
    }
    if (pitem) {
        *pitem = next_item;
    } else if (pkey && pvalue) {
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
            return -1;
    } else if (pkey) {
        *pkey = next_item;
    } else {
        *pvalue = next_item;
    }
    return 1;
}

/* PyObjectCall2Args */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args, *result = NULL;
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyFunction_FastCall(function, args, 2);
    }
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyCFunction_FastCall(function, args, 2);
    }
    #endif
    args = PyTuple_New(2);
    if (unlikely(!args)) goto done;
    Py_INCREF(arg1);
    PyTuple_SET_ITEM(args, 0, arg1);
    Py_INCREF(arg2);
    PyTuple_SET_ITEM(args, 1, arg2);
    Py_INCREF(function);
    result = __Pyx_PyObject_Call(function, args, NULL);
    Py_DECREF(args);
    Py_DECREF(function);
done:
    return result;
}

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
                 Py_TYPE(obj)->tp_name, type->tp_name);
    return 0;
}

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    #endif
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    PyObject *exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
    if (unlikely(PyTuple_Check(err)))
        return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* None */
static CYTHON_INLINE long __Pyx_div_long(long a, long b) {
    long q = a / b;
    long r = a - q*b;
    q -= ((r != 0) & ((r ^ b) < 0));
    return q;
}

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback, CYTHON_UNUSED int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
#ifdef _MSC_VER
    else state = (PyGILState_STATE)-1;
#endif
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
    size_t size, enum __Pyx_ImportType_CheckSize check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if ((size_t)basicsize < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) {
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* FetchCommonType */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* fake_module;
    PyTypeObject* cached_type = NULL;
    fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
    if (!fake_module) return NULL;
    Py_INCREF(fake_module);
    cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
    if (cached_type) {
        if (!PyType_Check((PyObject*)cached_type)) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s is not a type object",
                type->tp_name);
            goto bad;
        }
        if (cached_type->tp_basicsize != type->tp_basicsize) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s has the wrong size, try recompiling",
                type->tp_name);
            goto bad;
        }
    } else {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
        PyErr_Clear();
        if (PyType_Ready(type) < 0) goto bad;
        if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
            goto bad;
        Py_INCREF(type);
        cached_type = type;
    }
done:
    Py_DECREF(fake_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CythonFunctionShared */
#include <structmember.h>
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
{
    if (unlikely(op->func_doc == NULL)) {
        if (op->func.m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp = op->func_doc;
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    op->func_doc = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_name == NULL)) {
#if PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = op->func_name;
    Py_INCREF(value);
    op->func_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = op->func_qualname;
    Py_INCREF(value);
    op->func_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
{
    PyObject *self;
    self = m->func_closure;
    if (self == NULL)
        self = Py_None;
    Py_INCREF(self);
    return self;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    tmp = op->func_dict;
    Py_INCREF(value);
    op->func_dict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyTuple_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_tuple;
    op->defaults_tuple = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_kwdict;
    op->defaults_kwdict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value || value == Py_None) {
        value = NULL;
    } else if (!PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    tmp = op->func_annotations;
    op->func_annotations = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromString(m->func.m_ml->ml_name);
#else
    return PyString_FromString(m->func.m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
                                       PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    if (unlikely(op == NULL))
        return NULL;
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
    op->func.m_ml = ml;
    op->func.m_self = (PyObject *) op;
    Py_XINCREF(closure);
    op->func_closure = closure;
    Py_XINCREF(module);
    op->func.m_module = module;
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
    op->func_classobj = NULL;
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults_size = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
    Py_CLEAR(m->func.m_module);
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
    Py_CLEAR(m->func_classobj);
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    PyObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
    Py_VISIT(m->func.m_module);
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
    Py_VISIT(m->func_classobj);
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
#if PY_MAJOR_VERSION < 3
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(func);
        return func;
    }
    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
        if (type == NULL)
            type = (PyObject *)(Py_TYPE(obj));
        return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
#endif
    return __Pyx_PyMethod_New(func, obj, type);
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    Py_ssize_t size;
    switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 0))
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags in "
                        "__Pyx_CyFunction_Call. METH_OLDARGS is no "
                        "longer supported!");
        return NULL;
    }
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
        argc = PyTuple_GET_SIZE(args);
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_CyFunction_descr_get,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
};
static int __pyx_CyFunction_init(void) {
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    m->defaults_size = size;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* FusedFunction */
static PyObject *
__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
                        PyObject *qualname, PyObject *closure,
                        PyObject *module, PyObject *globals,
                        PyObject *code)
{
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_FusedFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) op;
        fusedfunc->__signatures__ = NULL;
        fusedfunc->type = NULL;
        fusedfunc->self = NULL;
        PyObject_GC_Track(op);
    }
    return op;
}
static void
__pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self)
{
    PyObject_GC_UnTrack(self);
    Py_CLEAR(self->self);
    Py_CLEAR(self->type);
    Py_CLEAR(self->__signatures__);
    __Pyx__CyFunction_dealloc((__pyx_CyFunctionObject *) self);
}
static int
__pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self,
                             visitproc visit,
                             void *arg)
{
    Py_VISIT(self->self);
    Py_VISIT(self->type);
    Py_VISIT(self->__signatures__);
    return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg);
}
static int
__pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self)
{
    Py_CLEAR(self->self);
    Py_CLEAR(self->type);
    Py_CLEAR(self->__signatures__);
    return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self);
}
static PyObject *
__pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type)
{
    __pyx_FusedFunctionObject *func, *meth;
    func = (__pyx_FusedFunctionObject *) self;
    if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(self);
        return self;
    }
    if (obj == Py_None)
        obj = NULL;
    meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_New(
                    ((PyCFunctionObject *) func)->m_ml,
                    ((__pyx_CyFunctionObject *) func)->flags,
                    ((__pyx_CyFunctionObject *) func)->func_qualname,
                    ((__pyx_CyFunctionObject *) func)->func_closure,
                    ((PyCFunctionObject *) func)->m_module,
                    ((__pyx_CyFunctionObject *) func)->func_globals,
                    ((__pyx_CyFunctionObject *) func)->func_code);
    if (!meth)
        return NULL;
    if (func->func.defaults) {
        PyObject **pydefaults;
        int i;
        if (!__Pyx_CyFunction_InitDefaults((PyObject*)meth,
                                      func->func.defaults_size,
                                      func->func.defaults_pyobjects)) {
            Py_XDECREF((PyObject*)meth);
            return NULL;
        }
        memcpy(meth->func.defaults, func->func.defaults, func->func.defaults_size);
        pydefaults = __Pyx_CyFunction_Defaults(PyObject *, meth);
        for (i = 0; i < meth->func.defaults_pyobjects; i++)
            Py_XINCREF(pydefaults[i]);
    }
    Py_XINCREF(func->func.func_classobj);
    meth->func.func_classobj = func->func.func_classobj;
    Py_XINCREF(func->__signatures__);
    meth->__signatures__ = func->__signatures__;
    Py_XINCREF(type);
    meth->type = type;
    Py_XINCREF(func->func.defaults_tuple);
    meth->func.defaults_tuple = func->func.defaults_tuple;
    if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD)
        obj = type;
    Py_XINCREF(obj);
    meth->self = obj;
    return (PyObject *) meth;
}
static PyObject *
_obj_to_str(PyObject *obj)
{
    if (PyType_Check(obj))
        return PyObject_GetAttr(obj, __pyx_n_s_name);
    else
        return PyObject_Str(obj);
}
static PyObject *
__pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx)
{
    PyObject *signature = NULL;
    PyObject *unbound_result_func;
    PyObject *result_func = NULL;
    if (self->__signatures__ == NULL) {
        PyErr_SetString(PyExc_TypeError, "Function is not fused");
        return NULL;
    }
    if (PyTuple_Check(idx)) {
        PyObject *list = PyList_New(0);
        Py_ssize_t n = PyTuple_GET_SIZE(idx);
        PyObject *sep = NULL;
        int i;
        if (unlikely(!list))
            return NULL;
        for (i = 0; i < n; i++) {
            int ret;
            PyObject *string;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            PyObject *item = PyTuple_GET_ITEM(idx, i);
#else
            PyObject *item = PySequence_ITEM(idx, i);  if (unlikely(!item)) goto __pyx_err;
#endif
            string = _obj_to_str(item);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
            Py_DECREF(item);
#endif
            if (unlikely(!string)) goto __pyx_err;
            ret = PyList_Append(list, string);
            Py_DECREF(string);
            if (unlikely(ret < 0)) goto __pyx_err;
        }
        sep = PyUnicode_FromString("|");
        if (likely(sep))
            signature = PyUnicode_Join(sep, list);
__pyx_err:
;
        Py_DECREF(list);
        Py_XDECREF(sep);
    } else {
        signature = _obj_to_str(idx);
    }
    if (!signature)
        return NULL;
    unbound_result_func = PyObject_GetItem(self->__signatures__, signature);
    if (unbound_result_func) {
        if (self->self || self->type) {
            __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func;
            Py_CLEAR(unbound->func.func_classobj);
            Py_XINCREF(self->func.func_classobj);
            unbound->func.func_classobj = self->func.func_classobj;
            result_func = __pyx_FusedFunction_descr_get(unbound_result_func,
                                                        self->self, self->type);
        } else {
            result_func = unbound_result_func;
            Py_INCREF(result_func);
        }
    }
    Py_DECREF(signature);
    Py_XDECREF(unbound_result_func);
    return result_func;
}
static PyObject *
__pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw)
{
     __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD &&
                              !((__pyx_FusedFunctionObject *) func)->__signatures__);
    if (cyfunc->flags & __Pyx_CYFUNCTION_CCLASS && !static_specialized) {
        return __Pyx_CyFunction_CallAsMethod(func, args, kw);
    } else {
        return __Pyx_CyFunction_Call(func, args, kw);
    }
}
static PyObject *
__pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw)
{
    __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func;
    Py_ssize_t argc = PyTuple_GET_SIZE(args);
    PyObject *new_args = NULL;
    __pyx_FusedFunctionObject *new_func = NULL;
    PyObject *result = NULL;
    PyObject *self = NULL;
    int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD;
    int is_classmethod = binding_func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD;
    if (binding_func->self) {
        Py_ssize_t i;
        new_args = PyTuple_New(argc + 1);
        if (!new_args)
            return NULL;
        self = binding_func->self;
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_INCREF(self);
#endif
        Py_INCREF(self);
        PyTuple_SET_ITEM(new_args, 0, self);
        for (i = 0; i < argc; i++) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            PyObject *item = PyTuple_GET_ITEM(args, i);
            Py_INCREF(item);
#else
            PyObject *item = PySequence_ITEM(args, i);  if (unlikely(!item)) goto bad;
#endif
            PyTuple_SET_ITEM(new_args, i + 1, item);
        }
        args = new_args;
    } else if (binding_func->type) {
        if (argc < 1) {
            PyErr_SetString(PyExc_TypeError, "Need at least one argument, 0 given.");
            return NULL;
        }
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        self = PyTuple_GET_ITEM(args, 0);
#else
        self = PySequence_ITEM(args, 0);  if (unlikely(!self)) return NULL;
#endif
    }
    if (self && !is_classmethod && !is_staticmethod) {
        int is_instance = PyObject_IsInstance(self, binding_func->type);
        if (unlikely(!is_instance)) {
            PyErr_Format(PyExc_TypeError,
                         "First argument should be of type %.200s, got %.200s.",
                         ((PyTypeObject *) binding_func->type)->tp_name,
                         self->ob_type->tp_name);
            goto bad;
        } else if (unlikely(is_instance == -1)) {
            goto bad;
        }
    }
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
    Py_XDECREF(self);
    self = NULL;
#endif
    if (binding_func->__signatures__) {
        PyObject *tup;
        if (is_staticmethod && binding_func->func.flags & __Pyx_CYFUNCTION_CCLASS) {
            tup = PyTuple_Pack(3, args,
                               kw == NULL ? Py_None : kw,
                               binding_func->func.defaults_tuple);
            if (unlikely(!tup)) goto bad;
            new_func = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_CallMethod(
                func, binding_func->__signatures__, tup, NULL);
        } else {
            tup = PyTuple_Pack(4, binding_func->__signatures__, args,
                               kw == NULL ? Py_None : kw,
                               binding_func->func.defaults_tuple);
            if (unlikely(!tup)) goto bad;
            new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL);
        }
        Py_DECREF(tup);
        if (unlikely(!new_func))
            goto bad;
        Py_XINCREF(binding_func->func.func_classobj);
        Py_CLEAR(new_func->func.func_classobj);
        new_func->func.func_classobj = binding_func->func.func_classobj;
        func = (PyObject *) new_func;
    }
    result = __pyx_FusedFunction_callfunction(func, args, kw);
bad:
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
    Py_XDECREF(self);
#endif
    Py_XDECREF(new_args);
    Py_XDECREF((PyObject *) new_func);
    return result;
}
static PyMemberDef __pyx_FusedFunction_members[] = {
    {(char *) "__signatures__",
     T_OBJECT,
     offsetof(__pyx_FusedFunctionObject, __signatures__),
     READONLY,
     0},
    {0, 0, 0, 0, 0},
};
static PyMappingMethods __pyx_FusedFunction_mapping_methods = {
    0,
    (binaryfunc) __pyx_FusedFunction_getitem,
    0,
};
static PyTypeObject __pyx_FusedFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "fused_cython_function",
    sizeof(__pyx_FusedFunctionObject),
    0,
    (destructor) __pyx_FusedFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    0,
    0,
    0,
    &__pyx_FusedFunction_mapping_methods,
    0,
    (ternaryfunc) __pyx_FusedFunction_call,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    0,
    (traverseproc) __pyx_FusedFunction_traverse,
    (inquiry) __pyx_FusedFunction_clear,
    0,
    0,
    0,
    0,
    0,
    __pyx_FusedFunction_members,
    __pyx_CyFunction_getsets,
    &__pyx_CyFunctionType_type,
    0,
    __pyx_FusedFunction_descr_get,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
};
static int __pyx_FusedFunction_init(void) {
    __pyx_FusedFunctionType_type.tp_base = __pyx_CyFunctionType;
    __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type);
    if (__pyx_FusedFunctionType == NULL) {
        return -1;
    }
    return 0;
}

/* CLineInTraceback */
#ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(filename);
    #else
    py_srcfile = PyUnicode_FromString(filename);
    #endif
    if (!py_srcfile) goto bad;
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #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_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    Py_DECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

/* Declarations */
#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

/* Arithmetic */
#if CYTHON_CCOMPLEX
#else
    static CYTHON_INLINE int __Pyx_c_eq_double(__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_double(__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_double(__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_double(__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;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabs(b.real) >= fabs(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                double r = b.imag / b.real;
                double s = (double)(1.0) / (b.real + b.imag * r);
                return __pyx_t_double_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            double r = b.real / b.imag;
            double s = (double)(1.0) / (b.imag + b.real * r);
            return __pyx_t_double_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            double denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_double_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__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_double(__pyx_t_double_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
        __pyx_t_double_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE double __Pyx_c_abs_double(__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_double(__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:
                        return __Pyx_c_prod_double(a, a);
                    case 3:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, a);
                    case 4:
                        z = __Pyx_c_prod_double(a, a);
                        return __Pyx_c_prod_double(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if (b.imag == 0) {
                    z.real = pow(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_double(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
#endif

/* Declarations */
#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

/* Arithmetic */
#if CYTHON_CCOMPLEX
#else
    static CYTHON_INLINE int __Pyx_c_eq_float(__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_sum_float(__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_diff_float(__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_prod_float(__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;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabsf(b.real) >= fabsf(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                float r = b.imag / b.real;
                float s = (float)(1.0) / (b.real + b.imag * r);
                return __pyx_t_float_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            float r = b.real / b.imag;
            float s = (float)(1.0) / (b.imag + b.real * r);
            return __pyx_t_float_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
        if (b.imag == 0) {
            return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            float denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_float_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__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_zero_float(__pyx_t_float_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
        __pyx_t_float_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE float __Pyx_c_abs_float(__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_pow_float(__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:
                        return __Pyx_c_prod_float(a, a);
                    case 3:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, a);
                    case 4:
                        z = __Pyx_c_prod_float(a, a);
                        return __Pyx_c_prod_float(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if (b.imag == 0) {
                    z.real = powf(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2f(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_float(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
#endif

/* Declarations */
#if CYTHON_CCOMPLEX
  #ifdef __cplusplus
    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
      return ::std::complex< long double >(x, y);
    }
  #else
    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
      return x + y*(__pyx_t_long_double_complex)_Complex_I;
    }
  #endif
#else
    static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
      __pyx_t_long_double_complex z;
      z.real = x;
      z.imag = y;
      return z;
    }
#endif

/* Arithmetic */
#if CYTHON_CCOMPLEX
#else
    static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
       return (a.real == b.real) && (a.imag == b.imag);
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        __pyx_t_long_double_complex z;
        z.real = a.real + b.real;
        z.imag = a.imag + b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        __pyx_t_long_double_complex z;
        z.real = a.real - b.real;
        z.imag = a.imag - b.imag;
        return z;
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        __pyx_t_long_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;
    }
    #if 1
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else if (fabsl(b.real) >= fabsl(b.imag)) {
            if (b.real == 0 && b.imag == 0) {
                return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
            } else {
                long double r = b.imag / b.real;
                long double s = (long double)(1.0) / (b.real + b.imag * r);
                return __pyx_t_long_double_complex_from_parts(
                    (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
            }
        } else {
            long double r = b.real / b.imag;
            long double s = (long double)(1.0) / (b.imag + b.real * r);
            return __pyx_t_long_double_complex_from_parts(
                (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
        }
    }
    #else
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
        if (b.imag == 0) {
            return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
        } else {
            long double denom = b.real * b.real + b.imag * b.imag;
            return __pyx_t_long_double_complex_from_parts(
                (a.real * b.real + a.imag * b.imag) / denom,
                (a.imag * b.real - a.real * b.imag) / denom);
        }
    }
    #endif
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {
        __pyx_t_long_double_complex z;
        z.real = -a.real;
        z.imag = -a.imag;
        return z;
    }
    static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {
       return (a.real == 0) && (a.imag == 0);
    }
    static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {
        __pyx_t_long_double_complex z;
        z.real =  a.real;
        z.imag = -a.imag;
        return z;
    }
    #if 1
        static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
            return sqrtl(z.real*z.real + z.imag*z.imag);
          #else
            return hypotl(z.real, z.imag);
          #endif
        }
        static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
            __pyx_t_long_double_complex z;
            long double r, lnr, theta, z_r, z_theta;
            if (b.imag == 0 && b.real == (int)b.real) {
                if (b.real < 0) {
                    long 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:
                        return __Pyx_c_prod_long__double(a, a);
                    case 3:
                        z = __Pyx_c_prod_long__double(a, a);
                        return __Pyx_c_prod_long__double(z, a);
                    case 4:
                        z = __Pyx_c_prod_long__double(a, a);
                        return __Pyx_c_prod_long__double(z, z);
                }
            }
            if (a.imag == 0) {
                if (a.real == 0) {
                    return a;
                } else if (b.imag == 0) {
                    z.real = powl(a.real, b.real);
                    z.imag = 0;
                    return z;
                } else if (a.real > 0) {
                    r = a.real;
                    theta = 0;
                } else {
                    r = -a.real;
                    theta = atan2l(0.0, -1.0);
                }
            } else {
                r = __Pyx_c_abs_long__double(a);
                theta = atan2l(a.imag, a.real);
            }
            lnr = logl(r);
            z_r = expl(lnr * b.real - theta * b.imag);
            z_theta = theta * b.real + lnr * b.imag;
            z.real = z_r * cosl(z_theta);
            z.imag = z_r * sinl(z_theta);
            return z;
        }
    #endif
#endif

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

/* CIntFromPyVerify */
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* FromPy */
static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject* o) {
    Py_complex cval;
#if !CYTHON_COMPILING_IN_PYPY
    if (PyComplex_CheckExact(o))
        cval = ((PyComplexObject *)o)->cval;
    else
#endif
        cval = PyComplex_AsCComplex(o);
    return __pyx_t_double_complex_from_parts(
               (double)cval.real,
               (double)cval.imag);
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) {
    const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum NPY_TYPES) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum NPY_TYPES) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES),
                                     little, !is_unsigned);
    }
}

/* None */
static CYTHON_INLINE long __Pyx_pow_long(long b, long e) {
    long t = b;
    switch (e) {
        case 3:
            t *= b;
        CYTHON_FALLTHROUGH;
        case 2:
            t *= b;
        CYTHON_FALLTHROUGH;
        case 1:
            return t;
        case 0:
            return 1;
    }
    #if 1
    if (unlikely(e<0)) return 0;
    #endif
    t = 1;
    while (likely(e)) {
        t *= (b * (e&1)) | ((~e)&1);
        b *= b;
        e >>= 1;
    }
    return t;
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            long val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* ImportNumPyArray */
static PyObject* __Pyx__ImportNumPyArray(void) {
    PyObject *numpy_module, *ndarray_object = NULL;
    numpy_module = __Pyx_Import(__pyx_n_s_numpy, NULL, 0);
    if (likely(numpy_module)) {
        ndarray_object = PyObject_GetAttrString(numpy_module, "ndarray");
        Py_DECREF(numpy_module);
    }
    if (unlikely(!ndarray_object)) {
        PyErr_Clear();
    }
    if (unlikely(!ndarray_object || !PyObject_TypeCheck(ndarray_object, &PyType_Type))) {
        Py_XDECREF(ndarray_object);
        Py_INCREF(Py_None);
        ndarray_object = Py_None;
    }
    return ndarray_object;
}
static CYTHON_INLINE PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void) {
    if (unlikely(!__pyx_numpy_ndarray)) {
        __pyx_numpy_ndarray = __Pyx__ImportNumPyArray();
    }
    Py_INCREF(__pyx_numpy_ndarray);
    return __pyx_numpy_ndarray;
}

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = a->tp_base;
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
    if (!res) {
        res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
    return res;
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* CheckBinaryVersion */
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);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

/* FunctionExport */
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
    if (!d) {
        PyErr_Clear();
        d = PyDict_New();
        if (!d)
            goto bad;
        Py_INCREF(d);
        if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
            goto bad;
    }
    tmp.fp = f;
#if PY_VERSION_HEX >= 0x02070000
    cobj = PyCapsule_New(tmp.p, sig, 0);
#else
    cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
#endif
    if (!cobj)
        goto bad;
    if (PyDict_SetItemString(d, name, cobj) < 0)
        goto bad;
    Py_DECREF(cobj);
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(cobj);
    Py_XDECREF(d);
    return -1;
}

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

/* InitStrings */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type %.200s).  "
                "The ability to return an instance of a strict subclass of int "
                "is deprecated, and may be removed in a future version of Python.",
                Py_TYPE(result)->tp_name)) {
            Py_DECREF(result);
            return NULL;
        }
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type %.200s)",
                 type_name, type_name, Py_TYPE(result)->tp_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    const digit* digits = ((PyLongObject*)b)->ob_digit;
    const Py_ssize_t size = Py_SIZE(b);
    if (likely(__Pyx_sst_abs(size) <= 1)) {
        ival = likely(size) ? digits[0] : 0;
        if (size == -1) ival = -ival;
        return ival;
    } else {
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
